我从以下两个JSON文件中加载了两个JObject
:
{
"data": {
"organism": {
"human": [
{
"firstName": "John",
"lastName": "Doe"
}
]
}
}
}
{
"degrees": [
{
"type": "bachelor",
"major": "Math"
},
{
"type": "master",
"major": "Computer Science"
}
]
}
我想像这样将它们组合成一个JObject
:
{
"data": {
"organism": {
"human": [
{
"firstName": "John",
"lastName": "Doe",
"degrees": [
{
"type": "bachelor",
"major": "Math"
},
{
"type": "master",
"major": "Computer Science"
}
]
}
]
}
}
}
我曾尝试像这样将它们添加为新字段,但是却收到一个错误,我无法将JObject
添加到另一个JObject
:
jObject1["data"]["organism"]["human"][0]["lastName"].Parent.AddAfterSelf(jObject2)
然后我尝试使用JProperty
添加它,但是它只是添加了一个重复的字段,这不是我需要的格式。
jObject1["data"]["organism"]["human"][0]["lastName"].Parent.AddAfterSelf(new JProperty("degrees",jobject2))
我不确定如何进行此操作。
答案 0 :(得分:1)
您可以执行以下操作:
./cma_length noah bruh conner
注意:
将((JObject)jObject1["data"]["organism"]["human"][0]).Add(jObject2.Property("degrees"));
返回到jObject1["data"]["organism"]["human"][0]
可以确保该路径上确实存在JSON对象。假设可以进行转换,可以轻松添加属性。
您的查询添加了一个附加术语JObject
,它实际上选择了与["lastName"]
相对应的JValue
"Doe"
。不知道为什么要这么做,所以我从解决方案中将其删除。
JObject.Property
返回具有给定名称的"lastName": "Doe"
;如果找不到,则返回null。然后可以通过其Add()
方法将该JProperty
添加到另一个JProperty
。请注意,实际上,已添加了所选属性的副本,有关原因请参见this answer到 JArray.Remove(JToken) does not delete 。
演示小提琴here。