C# 将JObject添加到.NET中的另一个JObject
我从以下两个JSON文件加载了两个JObject:C# 将JObject添加到.NET中的另一个JObject,c#,.net,json,json.net,C#,.net,Json,Json.net,我从以下两个JSON文件加载了两个JObject: { "data": { "organism": { "human": [ { "firstName": "John", "lastName": "Doe" } ] } } } 我想将它们组合成一个作业项目,如下所示: { "data": { "organism": { "human": [
{
"data": {
"organism": {
"human": [
{
"firstName": "John",
"lastName": "Doe"
}
]
}
}
}
我想将它们组合成一个作业项目,如下所示:
{
"data": {
"organism": {
"human": [
{
"firstName": "John",
"lastName": "Doe",
"degrees": [
{
"type": "bachelor",
"major": "Math"
},
{
"type": "master",
"major": "Computer Science"
}
]
}
]
}
}
}
我尝试将它们添加为新字段,如下所示,但我遇到一个错误,无法将JObject添加到另一个JObject:
然后我尝试使用JProperty添加它,但它只是添加了一个重复的字段,这不是我需要的格式
jObject1["data"]["organism"]["human"][0]["lastName"].Parent.AddAfterSelf(new JProperty("degrees",jobject2))
我不知道如何继续。您可以按如下方式执行:
((JObject)jObject1["data"]["organism"]["human"][0]).Add(jObject2.Property("degrees"));
注:
将jObject1[data][organism][human][0]返回到JObject可确保该路径上确实存在JSON对象。假设可以进行浇铸,则可以轻松添加属性
您的查询添加了一个额外的术语[lastName],它本质上选择了与lastName:Doe对应的Doe。我不知道你为什么这么做,所以我把它从我的解决方案中删除了
返回具有给定名称的JProperty,如果未找到,则返回null。然后可以通过其方法将该JProperty添加到另一个JobObject。请注意,事实上,已添加选定属性的克隆,请参阅以了解原因
演示小提琴
jObject1["data"]["organism"]["human"][0]["lastName"].Parent.AddAfterSelf(new JProperty("degrees",jobject2))
((JObject)jObject1["data"]["organism"]["human"][0]).Add(jObject2.Property("degrees"));