无法从JSON响应中提取特定字段

问题描述 投票:-1回答:2

我以前只是从以下JSON响应填充EmployeeIds列表:

{\r\n \"EmployeeId\": [\r\n  201812345,\r\n 201812346,\r\n 201812347, \r\n}

进入我的收藏

var resultSet = await response.Content.ReadAsAsync<EmployeeIds>();

不过最近服务器响应已更改为:

{
 "httpStatus": 200,
 "queryID": "getIds",
 "statustext": [
 "ResultCode: OK"
 ],
"rowsReturned": 228,
"dataset": "[\r\n {\r\n  \"EmployeeId\": 20181234\r\n  }, \r\n {\r\n  
\"EmployeeId\": 20181234\r\n  },\r\n {\r\n  \"EmployeeId\": 20181234\r\n 
}\r\n]"
}

我现在无法从这个Json的提取雇员值。我试图通过反序列化的反应:

var jsonresult=await response.Content.ReadAsStringAsync();
var deserializedjsonobject = JObject.Parse(jsonResult);
var Ids= deserializedjsonobject["dataset"]

但值结果IDS始终是:

"[\r\n {\r\n  \"EmployeeId\": 20181234\r\n  }, \r\n {\r\n \"EmployeeId\": 20181234\r\n  },\r\n {\r\n  \"EmployeeId\": 20181234\r\n }\r\n]

谢谢

c#
2个回答
0
投票

dataset是一个序列化JSON字符串。您将需要反序列化的外部对象后,反序列化这一点。

var jsonresult = await response.Content.ReadAsStringAsync();
var deserializedjsonobject = JObject.Parse(jsonResult);
var Ids = JArray.Parse(deserializedjsonobject["dataset"]);

0
投票

感谢大家的输入。我没有注意的问题是这样一个事实,数据集“:‘[XXXXX]’被包裹在双引号,因此回来了作为字符串我接触的供应商,他们解决了问题

© www.soinside.com 2019 - 2024. All rights reserved.