gpt4 book ai didi

c# - 如何反序列化列表对象中的响应 JSON?

转载 作者:太空宇宙 更新时间:2023-11-03 21:33:04 26 4
gpt4 key购买 nike

我有一个 C# 应用程序,它发送一个 http 请求并收到来自 WebServer 的响应。

这是代码,它发现:

    String url = "http://myurl";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Method = "GET";

using (var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
log.Info(httpResponse);
using (var reader = new StreamReader(httpResponse.GetResponseStream()))
{
JavaScriptSerializer js = new JavaScriptSerializer();
var objText = reader.ReadToEnd();
ResponseJSON myojb = (ResponseJSON)js.Deserialize(objText, typeof(ResponseJSON));

}

}

objText 包含该响应

"{"status":1,
"message":"Ok",
"people":[
{
"fiscalCode":"ASSISTITO2",
"name":"Marco",
"surname":"Puzzolante",
"sex":"M",
"bornDate":null,
"cityCode":null
},
{"fiscalCode":"PLMLCU",
"name":"Luca",
"surname":"Palumbo",
"sex":"M",
"bornDate":"1983-04-22T00:00:00",
"cityCode":"FO"
}
]
}"

现在我有了这个对象“ResponseJSON”。它只填充了两个字段(状态和消息)。ResponseJSON 是:

public class ResponseJSON
{
public int status { set; get; }
public String message { set; get; }
public List<Person> person { set; get; }
}

此对象没有填充人员列表。

对象 Person 是:

public class Person
{
public String fiscalCode { set; get; }
public String name { set; get; }
public String surname { set; get; }
public String sex { set; get; }
public String bornDate { set; get; }
public String cityCode { set; get; }
public String provinceCode { set; get; }
public String username { set; get; }
public String bloodGroup { set; get; }
}

我的错误在哪里?

我们能帮我吗?

问候

最佳答案

您的 ResponseJSON 类与您的 JSON 不匹配。

person 属性更改为 people 以反射(reflect) JSON。

public class ResponseJSON
{
public int Status { set; get; }
public String Message { set; get; }
public List<Person> People { set; get; }
}

JavaScriptSerializer将反序列化不区分大小写,因此如果您的 JSON 是驼峰式大小写,您可以对您的属性进行 PascalCase。

还有一个通用重载 Deserialize :

var myojb = js.Deserialize<ResponseJSON>(objText);

关于c# - 如何反序列化列表对象中的响应 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23248389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com