【发布时间】:2018-07-01 00:00:03
【问题描述】:
我有这个 JSON,但我不知道如何将它转换为 C# 中的对象列表。
这是 JSON:
{
"2": {
"sell_average": 239,
"buy_average": 238,
"overall_average": 240,
"id": 2
},
"6": {
"sell_average": 184434,
"buy_average": 182151,
"overall_average": 189000,
"id": 6
},
"8": {
"sell_average": 11201,
"buy_average": 1723,
"overall_average": 180,
"id": 8
}
}
以及我尝试使用的代码:
public class ItemSummaryModel
{
public string Id { get; set; }
public ItemSummary ItemSummary { get; set; }
}
public class ItemSummary
{
public int Sell_Average { get; set; }
public int Buy_Average { get; set; }
public int Overall_Average { get; set; }
public int Id { get; set; }
}
List<ItemSummaryModel> models =
JsonConvert.DeserializeObject<List<ItemSummaryModel>>(jsonSummary);
无济于事。如何使用 Newtonsoft 的 JSON 库 (Json.Net) 将此 JSON 反序列化为这些对象的列表?
【问题讨论】:
-
需要考虑的几件事:您正试图反序列化为一个列表,但您的 JSON 并不代表一个列表,它只是一个具有属性的复杂对象。其次,您的域对象属性名称与 JSON 属性名称不匹配,因此 C# 的大部分内容都需要使用在 JSON 中指定确切名称的属性进行修饰。最后,没有任何迹象表明“2”、“6”和“8”是“Id”,所以目前您的 JSON 结构并不等同于 C# 结构。