首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# JSON如何使用类名作为节点名来序列化列表

C# JSON如何使用类名作为节点名来序列化列表
EN

Stack Overflow用户
提问于 2020-10-20 01:44:12
回答 2查看 212关注 0票数 0

我想用类名作为被序列化的子元素的父名来序列化一个列表,格式如下:

代码语言:javascript
运行
复制
"parent": [
   "title": "",
   "child_items" : [
      "child_item" : {
         "field1": "1",
         "field2": "2"
       },
      "child item" : {
         "field1": "1",
         "field2": "2"
      }
   ]
]

我有一个叫Parent的类,还有一个叫ChildItem的类。我在父类上有一个属性,它是一个标题列表和ChildItems属性。

当我使用Newtonsoft.Json.JsonConvert.SerializeObject对其进行序列化时,我得到了以下结果:

代码语言:javascript
运行
复制
"parent": [
   "title": "",
   "child_items" : [
      {
         "field1": "1",
         "field2": "2"
       },
      {
         "field1": "1",
         "field2": "2"
      }
   ]
]

如果我创建一个名为ChildItems的独立类,该类的属性是ChildItem的列表,并将ChildItems类设置为Parent的属性,则会得到以下结果:

代码语言:javascript
运行
复制
"parent": [
   "title": "",
   "child_items" : {
      "child_item" : [
         {
            "field1": "1",
            "field2": "2"
         },
         {
            "field1": "1",
            "field2": "2"
         }
      ]
   }
]

我希望输出以child_item列表的形式显示child_items,每个子字段下面都有子字段。

编辑:这是我创建的一个示例:https://dotnetfiddle.net/ozJK9B。我想让" ChildItem“显示为"ChildItems”下的项目列表,并让ChildItem属性显示在每个ChildItem的下面。

EN

回答 2

Stack Overflow用户

发布于 2020-10-21 02:01:34

也许可以解释为什么您想要更改序列化,而不是让序列化反映您的类结构。您是否需要反映这样的结构才能与期望这样的数据结构的服务兼容?

如果您需要遵守json结构,比如数据协定,那么可以看一下将生成反映json数据集的类的某个son解析器。

https://json2csharp.com/将是一个您可以使用的

票数 1
EN

Stack Overflow用户

发布于 2020-10-21 01:51:31

我想好了我需要做什么。父项必须具有子项列表的属性。子项目类将具有一个属性,这是子项目详细信息。下面是我写的一个例子:https://dotnetfiddle.net/lgz7CV

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64432614

复制
相关文章

相似问题

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