如何将Json反序列化为具有节点键ID的C#对象?例如:
{
"people" : {
"1": {
"firstname": "jim",
"lastname": "brown"
},
"2": {
"firstname": "kathy",
"lastname": "jones"
}
}
}
将序列化到这个C#类中
public class JsonRoot {
public List<Person> People { get; set; }
}
public class Person {
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
使用自定义泛型转换器或json属性可以做到这一点吗?
发布于 2021-06-22 23:02:21
因为在json数据中没有数组,所以这个列表不会给出解决方案。
可以使用字典,这也是两个级别。第一个字典只包含一个key = person,它的值也是字典,它的key是"1“和"2”,值是person对象。
class Program
{
static string jsonData = @"{
""people"" : {
""1"": {
""firstname"": ""jim"",
""lastname"": ""brown""
},
""2"": {
""firstname"": ""kathy"",
""lastname"": ""jones""
}
}
}
";
static void Main(string[] args)
{
var datatextjson = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, Dictionary<string, Person>>>(jsonData);
Console.WriteLine("Hello World!");
}
public class Person
{
public string firstname { get; set; }
public string lastname { get; set; }
}
}
https://stackoverflow.com/questions/68085768
复制相似问题