具有不同键名的json的JsonConvert.DeserializeObject

时间:2017-06-19 20:45:44

标签: c# json json.net

我正在尝试将Json.Net转换器用于这个奇怪的json:

{
  "Key1": {
  "id": "1",
  "name": "one"
  },
  "Key2": {
  "id": "2",
  "name": "two"
  },
...
  "CouldBeAnything": {
  "id": "n",
  "name": "CouldBeAnything"
  }
}

如果我使用json到xml源生成,我会得到具有名为Key1,Key2等属性的对象。这不起作用,因为我需要一个与它们相关的键和值的列表。有没有办法创建一个可以直接序列化的对象?提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

    class Class1
    {
        public string id { get; set; }
        public string name { get; set; }
    }

    static void Main(string[] args)
    {
        var d = new Dictionary<string, Class1>();

        d.Add("Key1", new Class1() { id = "1", name = "one" });
        d.Add("Key2", new Class1() { id = "2", name = "two" });
        d.Add("CouldBeAnything", new Class1() { id = "n", name = "CouldBeAnything" });

        var json = JsonConvert.SerializeObject(d, Formatting.Indented);

    }