C#属性值为Json Key Name
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#属性值为Json Key Name相关的知识,希望对你有一定的参考价值。
我有这样的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; }
}
这意味着我需要创建特定的类,如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": {
"Persons": [
{
"Name": "Bruce",
"City": "Gotham",
"Age": 43
},
{
"Name": "Clark",
"City": "Metro",
"Age": 43
}
]
}
}
答案
你的Json描述了一个名为Result
的属性的对象,即Dictionary<string, Person>
。
所以你的类只需要看起来像:
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; }
}
以上是关于C#属性值为Json Key Name的主要内容,如果未能解决你的问题,请参考以下文章
gson实体转json时当字段值为空时,json串中就不存在该属于,请问如何在值为空的时候也保留该字符串