【发布时间】:2012-07-26 08:25:29
【问题描述】:
有人可以帮助我以正确的方式反序列化这种格式的 json:
[
{person: {name: "James", age:26}},
{person: {name: "Mary", age:36}},
{person: {name: "Kofi", age:46}}
]
我使用的代码如下:
WebRequest request = WebRequest.Create("url");
WebResponse response = request.GetResponse();
string json;
using (var sr = new StreamReader(response.GetResponseStream()))
{
json = sr.ReadToEnd();
}
var serializer = new JavaScriptSerializer();
var persons= serializer.Deserialize<List<response>>(json);
foreach (var item in persons)
{
Console.Write("name:" + item.name + " and age: " + item.age);
}
我要映射到的类如下:
public class person
{
public string name{get;set;}
public int age{get; set;}
}
public class response
{
public person person {get;set;}
}
当我运行此代码时,我不断收到 name 和 age 属性的 null 和空字符串。如果有人能帮助我,我将不胜感激。
【问题讨论】:
-
你正在映射到 person 类,但是在你的反序列化器中你使用了“auto”类?
-
你确定这是有效的 JSON 吗?我认为你需要更多
"来围绕"person"之类的东西 -
jsonlint.com 似乎同意我的观点
-
我不得不在 foreach 循环中调用 item.person.name 和 item.person.age
-
Json Deserialize C#的可能重复
标签: json c#-4.0 deserialization