我已经嵌套了一些嵌套级别的JSON:
{
"Main": [
{
"id": 123,
"Sub1": [
{
"id": 2345,
"description": "...",
"Sub11": [
{
"subid": 6633,
"xid": 5555
}
]
}
]
},
{
"id": 332,
"Sub1": [
{
"xid": 5555,
"description": "...",
"Sub11": [
{
"subid": 6794
},
{
"subid": 4444
}
]
}
]
}
]
}
这只是一个例子。我需要遍历整个JSON并为具有属性NewNode
的元素插入一些json对象(xid: 5555
)
实施例。 前 -
"Sub11": [
{
"subid": 6633,
"xid": 5555
}
]
在 -
"Sub11": [
{
"subid": 6633,
"xid": 5555,
"NewNode":{
"SomeProperty": "value"
}
}
]
我正在考虑遍历每个节点,检查属性名称(xid
)。如果它的值匹配,则在那里插入节点(NewNode
)。
有更简单的方法来实现这一目标吗?
答案 0 :(得分:0)
您可以使用Json.Net LINQ-to-JSON API轻松完成此操作:
var root = JObject.Parse(json);
var matches = root.Descendants()
.OfType<JObject>()
.Where(x => x["xid"] != null && x["xid"].ToString() == "5555");
foreach (JObject jo in matches)
{
jo.Add("NewNode", new JObject(new JProperty("SomeProperty", "value")));
}
Console.WriteLine(root.ToString());