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

时间:2019-01-28 23:50:23

标签: c#

我以前只是从以下Json响应中填充EmployeeId的列表:

{\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提取EmployeeId值。我尝试通过以下方式反序列化响应:

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

但id的值结果始终为:

"[\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]

谢谢

2 个答案:

答案 0 :(得分:0)

dataset是序列化的json字符串。反序列化外部对象后,需要对此反序列化。

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

答案 1 :(得分:0)

感谢大家的投入。我没有注意的问题是数据集“:” [XXXXX]“用双引号引起来,因此以字符串形式返回。我联系了提供者,他们解决了问题