2017-01-19 38 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" 
               }]});