重塑JSON格式
本文关键字:格式 JSON 重塑 | 更新日期: 2023-09-27 18:15:06
我累了。我找不到解决办法,或者我自己根本做不到。我是c#新手,我不知道如何做到这一点。我尝试了几个方法,花了我一整天的时间。
现在的样子:
{
"TimeStamp": "1406232939277",
"Company": [
{
"Departments": [
{
"Name": "Customer Service",
"Head": "John",
"Teams": [
{
"Team": [
{
"Person-1": "Mark",
"Person-2": "Tom",
"Person-3": "Bob"
},
{
"Person-1": "Jean",
"Person-2": "Tyler",
"Person-3": "Beth"
}
]
}
]
},
{
"Name": "IT Department",
"Head": "Jones",
"Teams": [
{
"Team": [
{
"Person-1": "Stephanie",
"Person-2": "Ronald",
"Person-3": "Bruce"
},
{
"Person-1": "Forest",
"Person-2": "Megan",
"Person-3": "Alex"
}
]
}
]
}
]
}
]
}
应该是什么样子:
{
"TimeStamp": "1406232939277",
"Departments": [
{
"Name": "Customer Service",
"Head": "John",
"Teams": [
{
"Person-1": "Mark",
"Person-2": "Tom",
"Person-3": "Bob"
},
{
"Person-1": "Jean",
"Person-2": "Tyler",
"Person-3": "Beth"
}
]
},
{
"Name": "IT Department",
"Head": "Jones",
"Teams": [
{
"Person-1": "Stephanie",
"Person-2": "Ronald",
"Person-3": "Bruce"
},
{
"Person-1": "Forest",
"Person-2": "Megan",
"Person-3": "Alex"
}
]
}
]
}
我已经删除了所有的代码,它产生了坏的输出。我试着用Json.NET
和ServiceStack.Text
的例子和谷歌,但它超出了我的头。
有人告诉我我应该使用CustomCreationConverter
,我试过了,我真的试过了,但我不能这样做,我浪费了一整天。
我如何重塑它?
编辑:
我想通过忽略Company
元素并将Departments
移到它的位置来简化输出。我还想对Teams
和Team
数组做同样的事情,忽略其中一个,所以只有一个数组,而不是数组中的数组。
我试着反序列化并再次序列化它,但它不允许我"省略"Company
,我尝试了[XmlIgnore]
和其他。
如果你想避免字符串操作,你可以
a)使用JSON反序列化JSON字符串。净
OriginalClass m = JsonConvert.DeserializeObject<OriginalClass>(json);
b)创建一个类transformmedclass,其中包含您想要序列化的字段
c)将值从原始对象复制到transformmedclass的实例
d)使用JSON序列化新实例。净
string json = JsonConvert.SerializeObject(product);
*您可以使用VisualStudio中的PasteSpecial函数轻松创建OriginalClass类。编辑->粘贴特殊->粘贴JSON AS类