Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将JObject添加到.NET中的另一个JObject_C#_.net_Json_Json.net - Fatal编程技术网

C# 将JObject添加到.NET中的另一个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": [

我从以下两个JSON文件加载了两个JObject:

{
  "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"));