用可更改的密钥反序列化json

时间:2016-03-04 16:12:56

标签: c# json deserialization

我有这个JSON:

{
    "data":
        {
            "110714":{"periphery_id":108},
            "110715":{"periphery_id":102},
            "110710":{"periphery_id":107}
        }
}

以及描述它的类:

public class Info
{
    [JsonProperty("periphery_id")]
    public int PeripheryId { get; set; }
}

public class Data
{
    [JsonProperty(//what should be here as i have keys like 110710,110715,110714)]
    public Info Info { get; set; }
}

public class Structure
{
    [JsonProperty("data")]
    public Data Data { get; set; }
}

如何通过一个类描述这些对象?

"110714":{"periphery_id":108},
"110715":{"periphery_id":102},
"110710":{"periphery_id":107}

我知道JSON中所有数字键的值,因为我在服务器请求中发送它们。

API服务器是外部的,不能修改JSON结构

2 个答案:

答案 0 :(得分:0)

由于数据中的值具有更改键,因此您可以使用词典将其映射到,因此,而不是具有Info对象的Data,它将具有Dictionary<int, Info>,您可以从中访问值

答案 1 :(得分:0)

正如Gronex建议使用Dictionary。但要使其工作,您需要通过继承JsonConverter并覆盖ReadJson方法来实现自定义json转换器。