C# 使用不同对象名称的Newtonsoft Json解析

C# 使用不同对象名称的Newtonsoft Json解析,c#,json,json.net,C#,Json,Json.net,目前,我正在尝试解析从API收到的一些JSON。以下是我得到的一些结果: { "2": { "id": 2, "name": "Cannonball", "members": true, "sp": 5, "buy_average": 152, "buy_quantity": 358914, "sell_average": 151, "sell_quantity

目前,我正在尝试解析从API收到的一些JSON。以下是我得到的一些结果:

{
    "2": {
        "id": 2,
        "name": "Cannonball",
        "members": true,
        "sp": 5,
        "buy_average": 152,
        "buy_quantity": 358914,
        "sell_average": 151,
        "sell_quantity": 778131,
        "overall_average": 152,
        "overall_quantity": 1137045
    },
    "6": {
        "id": 6,
        "name": "Cannon base",
        "members": true,
        "sp": 187500,
        "buy_average": 184833,
        "buy_quantity": 9,
        "sell_average": 180518,
        "sell_quantity": 10,
        "overall_average": 182562,
        "overall_quantity": 19
    }
}
我需要把它解析成一个C类。我尝试复制JSON并使用paste special将其转换为类,但随后它为每个JSON对象创建了一个类


有人对我如何解析它有什么建议吗?属性总是相同的,只是对象2:这就是问题所在。

这里的技巧是反序列化到类类型的字典。例如:

public class Thing 
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool Members { get; set; }
    // etc...
}
现在你可以这样反序列化:

var result = JsonConvert.DeserializeObject<Dictionary<string, Thing>>(json);

注意:如果保证字典是数字,您可以在这里使用字典。

您提供的JSON包含两个对象,而不是一个。您可以使用JsonConvert.DeserializeObjectjsonString将其解析到字典中。然后,您将拥有一个包含两个条目的字典,其中包含键2和键6。

JSON的结构我认为您肯定希望它解析为IEnumerable,特别是因为属性是相同的。为什么要将其作为一个具有重复键的类出现?在一天结束时,您只是创建了一个假装为列表的类。@Liam的可能重复项我不认为这是一个有用的重复项,OP基本上是存在的,但被动态属性名卡住了。@Liam我不同意。不是同一个问题。