我想用类名作为被序列化的子元素的父名来序列化一个列表,格式如下:
"parent": [
"title": "",
"child_items" : [
"child_item" : {
"field1": "1",
"field2": "2"
},
"child item" : {
"field1": "1",
"field2": "2"
}
]
]我有一个叫Parent的类,还有一个叫ChildItem的类。我在父类上有一个属性,它是一个标题列表和ChildItems属性。
当我使用Newtonsoft.Json.JsonConvert.SerializeObject对其进行序列化时,我得到了以下结果:
"parent": [
"title": "",
"child_items" : [
{
"field1": "1",
"field2": "2"
},
{
"field1": "1",
"field2": "2"
}
]
]如果我创建一个名为ChildItems的独立类,该类的属性是ChildItem的列表,并将ChildItems类设置为Parent的属性,则会得到以下结果:
"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的下面。
发布于 2020-10-21 02:01:34
也许可以解释为什么您想要更改序列化,而不是让序列化反映您的类结构。您是否需要反映这样的结构才能与期望这样的数据结构的服务兼容?
如果您需要遵守json结构,比如数据协定,那么可以看一下将生成反映json数据集的类的某个son解析器。
https://json2csharp.com/将是一个您可以使用的
发布于 2020-10-21 01:51:31
我想好了我需要做什么。父项必须具有子项列表的属性。子项目类将具有一个属性,这是子项目详细信息。下面是我写的一个例子:https://dotnetfiddle.net/lgz7CV
https://stackoverflow.com/questions/64432614
复制相似问题