C# Json.NET反序列化:处理不同的属性名称

C# Json.NET反序列化:处理不同的属性名称,c#,.net,json,json.net,deserialization,C#,.net,Json,Json.net,Deserialization,我目前正在尝试使用JSON.NET反序列化从web API返回的JSON字符串。我的问题是,在响应中有嵌套属性,它们总是具有相同的结构(因此通常应反序列化为相同的对象类型),但名称不同。以下是一个屏幕截图: Json.NET中是否有任何内置机制来处理这些记录对象?否则,最好的处理方法是什么 非常感谢 您可以将其反序列化到字典中,然后对键进行迭代 public class Records { [JsonProperty(PropertyName = "records")] pub

我目前正在尝试使用JSON.NET反序列化从web API返回的JSON字符串。我的问题是,在响应中有嵌套属性,它们总是具有相同的结构(因此通常应反序列化为相同的对象类型),但名称不同。以下是一个屏幕截图:

Json.NET中是否有任何内置机制来处理这些记录对象?否则,最好的处理方法是什么


非常感谢

您可以将其反序列化到字典中,然后对键进行迭代

public class Records
{
    [JsonProperty(PropertyName = "records")]
    public List<int> records { get; set; }

    [JsonProperty("items")]
    private List<int> items { set { records.AddRange(value); } }
}

(这是一个例子)。

您可以将其反序列化到字典,然后迭代键


(举个例子)。

那看起来像一本字典。那看起来像一本字典。
var str = "{\"records\":[\"1\",\"2\"],\"items\":[\"3\",\"4\"]}";
var json = JsonConvert.DeserializeObject<Records>(str);
{"records":[1,2,3,4]}