我正在尝试将 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"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
然后我说
List<House> Houses = JsonConvert.DeserializeObject<List<House>>(json);
Run Code Online (Sandbox Code Playgroud)
你得到的 JSON 字符串不是一个列表,而是一个在嵌套级别上有一个列表的对象。您必须反序列化最外层结构,然后获取相应的嵌套属性。
您可以定义一个完整的类来表示您的数据的完整结构,或者,如果您只对房屋列表感兴趣,只需使用 JObjects
var o = JsonConvert.DeserializeObject<JObject>(json);
var h = o.Value<JObject>("Data")
.Value<JArray>("Houses")
.ToObject<List<Houses>>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12668 次 |
| 最近记录: |