我会将收到的JSON字符串解析为我的ReturnClass(ReturnClass的集合)。
我的JSON字符串:
[
{ "EmpId": 1, "Name": "Simone", "City": "Italy" },
{ "EmpId": 2, "Name": "Luca", "City": "Francia" },
{ "EmpId": 1, "Name": "Matteo", "City": "Inghilterra"},
{ "EmpId": 2, "Name": "Marco", "City": "Spagna" }
]
我的ReturnClass:
public class ReturnClass
{
public int EmpId { get; set; }
public string Name { get; set; }
public string City { get; set; }
}
这是我的代码tath不起作用。解析错误
HttpResponseMessage response = client.GetAsync(URL).Result; // Blocking call!
if (response.IsSuccessStatusCode)
{
string output = JsonConvert.SerializeObject(response.Content.ReadAsStringAsync().Result);
JsonConvert.DeserializeObject<ReturnClass>(output);
}
答案 0 :(得分:2)
使用此代码:
string output = JsonConvert.SerializeObject(response.Content.ReadAsStringAsync().Result);
JsonConvert.DeserializeObject<ReturnClass>(output);
你是:
ReturnClass
除了第一步,这只是不必要的,这是完全错误的。您无需自己将内容作为字符串读取,您绝对不希望再次将JSON字符串序列化为JSON,并且您并不是在寻找一个 {{1 },但是它的集合。
您可以将代码简化为:
ReturnClass
作为额外的奖励,您不必自己进行反序列化,var dataFromJson = await client.ReadAsAsync<List<ReturnClass>>();
可以做到这一点。