C# 用基类反序列化Json响应

C# 用基类反序列化Json响应,c#,json,json.net,C#,Json,Json.net,我不能控制json响应,但是我得到的响应有一个相同的对象列表,但是每个对象的名称不同。它们实际上是同一个对象,但我不知道如何反序列化不同的名称。 例: 我不知道对象的数量或名称,因此无法正确添加模型 您可以尝试使用通过JSON键名获取对象 因此,如果有许多对象和不同的名称,则可以通过键名获得属性 下面是从对象获取ID的示例 string jsonData = @"{ 'Data': { 'OBJ_1': { 'Id': '4321',

我不能控制json响应,但是我得到的响应有一个相同的对象列表,但是每个对象的名称不同。它们实际上是同一个对象,但我不知道如何反序列化不同的名称。 例:

我不知道对象的数量或名称,因此无法正确添加模型

您可以尝试使用通过JSON键名获取对象

因此,如果有许多对象和不同的名称,则可以通过键名获得属性

下面是从对象获取
ID
的示例

string jsonData = @"{   
    'Data': { 
        'OBJ_1': {
            'Id': '4321',
            'Url': '/test/url/1'
        },
        'OBJ_2': {
            'Id': '749869',
            'Url': '/test/ur1/1'
        }
    } 
}";

var o = JObject.Parse(jsonData);

foreach (var item in o["Data"])
{
    Console.WriteLine(item.First.Value<string>("Id"));
}

使用
public类SomeName{public Dictionary Data{get;set;}}}
string jsonData = @"{   
    'Data': { 
        'OBJ_1': {
            'Id': '4321',
            'Url': '/test/url/1'
        },
        'OBJ_2': {
            'Id': '749869',
            'Url': '/test/ur1/1'
        }
    } 
}";

var o = JObject.Parse(jsonData);

foreach (var item in o["Data"])
{
    Console.WriteLine(item.First.Value<string>("Id"));
}
4321
749869