如何在每个JSON数组项前面显示属性值
本文关键字:前面 显示 属性 数组 JSON | 更新日期: 2023-09-27 18:24:57
这是我正在使用的JSON字符串。
{
"id": 1,
"title": "A Test",
"items": [
{
"id": 157,
"title": "some article",
"type": "Article"
},
{
"id": 153,
"title": "some other article",
"type": "Article"
}
]
}
我正在使用Json.Net进行序列化。在显示之前,我可以这样格式化JSON吗?
{
"id": 1,
"title": "A Test",
"items": [
"157" : {
"title": "some article",
"type": "Article"
},
"153" : {
"title": "some other article",
"type": "Article"
}
]
}
提前谢谢。
您可以使用Json.Net的LINQ-to-Json API(JObjects)来转换原始Json,从而非常接近您想要的输出。这里有一种方法:
public static string Transform(string json)
{
JObject root = JObject.Parse(json);
JObject itemsObj = new JObject();
foreach (JObject item in root["items"])
{
JToken id = item["id"];
id.Parent.Remove();
itemsObj.Add(id.ToString(), item);
}
root["items"].Parent.Remove();
root.Add("items", itemsObj);
return root.ToString();
}
如果您将原始JSON传递给此方法,您将获得以下输出:
{
"id": 1,
"title": "A Test",
"items": {
"157": {
"title": "some article",
"type": "Article"
},
"153": {
"title": "some other article",
"type": "Article"
}
}
}
Fiddle:https://dotnetfiddle.net/1di41P