字段被忽略了。我成功找回了2个对象的列表,但没有填充任何字段。我究竟做错了什么? (不幸的是,我无法控制json格式。它完全符合这种结构。
using System.Web.Script.Serialization;
public void myMethod {
string myContent = @"
[
{
"my_object": {
"city": "city 1",
"myAge": 15
}
},
{
"my_object": {
"city": "city 2",
"myAge": 18
}
}
]";
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<my_object> list = serializer.Deserialize<List<my_object>>(myContent);
}
public class json_content {
public string city { get; set; }
public int myAge { get; set; }
}
答案 0 :(得分:2)
您的JSON中有一个属性json_content
的对象列表,但是期望列表直接包含json_content
个对象。
最有可能的解决方法是从JSON中删除中间对象(如果你控制它):
[
{
"city": "city 1",
"myAge": 15
},...
];
如果您不控制JSON添加外部类:
class JsonOuterContent
{
public JsonContent json_content;
}
List<JsonOuterContent> list = serializer
.Deserialize<List<JsonOuterContent>>(myContent);
答案 1 :(得分:2)
此代码解决了您的问题:
public void myMethod()
{
string myContent = @"
[
{
""json_content"": {
""city"": ""city 1"",
""myAge"": 15
}
},
{
""json_content"": {
""city"": ""city 2"",
""myAge"": 18
}
}
]";
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<wrapper> list = serializer.Deserialize<List<wrapper>>(myContent);
}
public class wrapper
{
public json_content json_content { get; set; }
}
public class json_content
{
public string city { get; set; }
public int myAge { get; set; }
}