2017-01-19 39 views
-1

[更新了家长和孩子的结构]JavaScript的:如何添加结构的JSON结构内

我有一个JSON结构看起来像这样:

{ 
    "case":{ 
     "steps":{ 
      "step":[{ 
       "tasks":{ 
        "task":{ 
         "fields":{ 
          "field":[{ 

          }] 
         } 
        } 
       } 
      }] 
     } 
    } 
}; 

我也有一个小的结构是这样的:

"entry":{ 
    "name":"XYZ" 
}, 

我想在的位置添加较小结构的2份到一个较大

这应该可能吗?

+0

领域是地图,如果两个副本有什么键? – fafl

+0

嗨@fafl,这将是插入两个“字段”映射副本的情况,它们将是相同的(除了“名称”属性中的值可能会根据需要更改) – coderworks

+0

不应该是字段数组呢? – fafl

回答

2

像这样的事情会做的工作:

var biggerStructure = JSON.parse(biggerJsonString); 
var smallerStructure = JSON.parse(smallerJsonString); 

biggerStructure.case.steps.step[0].tasks.task.fields.field.push(smallerStructure); 
biggerStructure.case.steps.step[0].tasks.task.fields.field.push(smallerStructure); 

var result = JSON.stringify(biggerStructure); 

BTW:F如果你想向它添加多个对象,字段应该是一个数组而不是一个对象,并且由于具有相同的名称,字段本身不能添加到字段多次。

那么最终的结果会是这样的:

{ 
    "case":{ 
     "steps":{ 
      "step":[{ 
       "tasks":{ 
        "task":{ 
         "fields":{ 
          "field":[{ 
           { 
            "name":"XYZ" 
           }, 
           { 
            "name":"XYZ" 
           } 
          }] 
         }      
        } 
       } 
      }] 
     } 
    } 
}; 
1

case.steps.step [0] .tasks.task.fields是一个对象,它包含字段的两个副本,它需要像

{ 
    "case":{ 
     "steps":{ 
      "step":[{ 
       "tasks":{ 
        "task":{ 
         "fields":[ 

         ] 
        } 
       } 
      }] 
     } 
    } 
}; 

数组,然后这可以包含更小的物体领域的多个条目

case.steps.step[0].tasks.task.fields.push({"field":[{ 
              "name":"XYZ" 
               }]});