C#属性值作为Json键名
我有这样的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; }
{
"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; }
}
这意味着我需要创建特定的类,如Bruce,Clark等。是否可以反序列化这个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; }
}