我有一个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; }
}
此对象没有填充人员列表。
对象人是:
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; }
}
我的错误在哪里?
我们可以帮助我吗?
Reguards
答案 0 :(得分:4)
您的ResponseJSON
课程与您的JSON不符。
将person
属性更改为people
以反映JSON。
public class ResponseJSON
{
public int Status { set; get; }
public String Message { set; get; }
public List<Person> People { set; get; }
}
JavaScriptSerializer
将反序列化不区分大小写,因此如果您的JSON是camelCase,则可以PascalCase您的属性。
还有Deserialize
的通用重载:
var myojb = js.Deserialize<ResponseJSON>(objText);