我正在尝试将 JSON 字符串转换为对象列表,但收到错误
无法将当前 JSON 对象反序列化为 List 类型,因为该类型需要 JSON 数组才能正确反序列化。
我检索 json,它看起来像这样
{
"Code":0,
"Message":"OK",
"Data":
{
"Houses":
[
{
"Id":1,
"Name":"House 1",
"Area":"22.00",
"ShortName":"H1",
"FarmName":"Farm 1"
},
{
"Id":2,
"Name":"Farmi1 - House 1",
"Area":"1000.00",
"ShortName":"H1",
"FarmName":"Farm 1"
}
]
}
}
然后我说
List<House> Houses = JsonConvert.DeserializeObject<List<House>>(json);
您获得的 JSON 字符串不是列表,而是一个在嵌套级别上具有列表的对象。您必须反序列化最外层的结构,然后获取相应的嵌套属性。
您可以定义一个代表数据完整结构的整个类,或者,如果您只对房屋列表感兴趣,则只需使用 JObjects
var o = JsonConvert.DeserializeObject<JObject>(json);
var h = o.Value<JObject>("Data")
.Value<JArray>("Houses")
.ToObject<List<Houses>>();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)