首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#使用ID节点反序列化Json

C#使用ID节点反序列化Json
EN

Stack Overflow用户
提问于 2021-06-22 22:46:54
回答 1查看 104关注 0票数 0

如何将Json反序列化为具有节点键ID的C#对象?例如:

代码语言:javascript
运行
复制
{
  "people" : {
    "1": {
       "firstname": "jim",
       "lastname": "brown"
    },
    "2": {
       "firstname": "kathy",
       "lastname": "jones"  
    }
  }
}

将序列化到这个C#类中

代码语言:javascript
运行
复制
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属性可以做到这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-22 23:02:21

因为在json数据中没有数组,所以这个列表不会给出解决方案。

可以使用字典,这也是两个级别。第一个字典只包含一个key = person,它的值也是字典,它的key是"1“和"2”,值是person对象。

代码语言:javascript
运行
复制
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; }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68085768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档