C#属性值作为Json键名

C#属性值作为Json键名,c#,json,json.net,C#,Json,Json.net,我有这样的Json: { "Result": { "Bruce": { "City": "Gotham", "Age": 43 }, "Clark": { "City": "Metro", "Age": 43 } } } 当我反序列化它时,我需要下面的类结构 public class Clark { public string City { get; set; }

我有这样的Json:

  {
  "Result": {
    "Bruce": {
      "City": "Gotham",
      "Age": 43
    },
    "Clark": {
      "City": "Metro",
      "Age": 43
    }
  }
}
当我反序列化它时,我需要下面的类结构

    public class Clark
    {
        public string City { get; set; }
        public int Age { get; set; }
    }

    public class Bruce
    {
        public string City { get; set; }
        public int Age { get; set; }
    }

    public class Result
    {
        public Bruce Bruce { get; set; }
        public Clark Clark { get; set; }

    }

    public class RootObject
    {
        public Result Result { get; set; }
    }
这意味着我需要创建特定的类,如BruceClark等。是否可以反序列化这个Json,而不是分离Bruce,Clark等,我只有一个这样的Person类

    public class Person
    {
        public string Name { get; set; }
        public string City { get; set; }

        public int Age { get; set; }
    }
    public class Result
    {           
        public List<Person> Persons { get; set; }
    }

    public class RootObject
    {
        public Result Result { get; set; }
    }

您的Json使用一个名为
Result
的属性描述一个对象,即
字典

因此,您的类只需如下所示:

public class Person
{
    public string Name { get; set; }
    public string City { get; set; }
    public int Age { get; set; }
}

public class RootObject
{
    public Dictionary<string, Person> Result { get; set; }
}
公共类人物
{
公共字符串名称{get;set;}
公共字符串City{get;set;}
公共整数{get;set;}
}
公共类根对象
{
公共字典结果{get;set;}
}

结果
应该是一本
字典
,这就是你要做的一切。序列化后只需遍历字典的值问题是什么?@cyboashu如果这是您想要的,请检查我的comment@maccettura,
字典结果{get;set;}
已工作。谢谢你的回复。你能补充一下吗?这能回答你的问题吗?
public class Person
{
    public string Name { get; set; }
    public string City { get; set; }
    public int Age { get; set; }
}

public class RootObject
{
    public Dictionary<string, Person> Result { get; set; }
}