2016-11-17 17 views
-2

オブジェクトにいくつかのキーと値のペアをプッシュします:2は、ネストされたオブジェクト

{ 
"user": "hdpsrvc", 
"update": "13/06/2016 17:43:22", 
"template": "template_1", 
"formBody": [ 
    { 
     "tabIndex": 0, 
     "type": "text", 
     "name": "sourcePath", 
     "label": "Source path" 
    }, 
    { 
     "tabIndex": 1, 
     "type": "text", 
     "name": "targetPath", 
     "label": "Target path" 
    } 
], 

}

と私はベルのようなネストされたオブジェクトにオブジェクト1のキーと値のペアをプッシュしますあなたはそれが簡単に、単純に以下のように割り当てることによって行うことができ、その後プッシュするだけで、これらの2 valusをお持ちの場合OW

{ 
"user": "hdpsrvc", 
"update": "13/06/2016 17:43:22", 
"template": "template_1", 
"formBody": [ 
    { 
     "tabIndex": 0, 
     "type": "text", 
     "name": "sourcePath", 
     "label": "Source path", 
     "sourcePath": "vv" 
    }, 
    { 
     "tabIndex": 1, 
     "type": "text", 
     "name": "targetPath", 
     "label": "Target path", 
     "targetPath": "bb" 
    } 
], 
} 
+0

これはJSONではなくJavaScriptオブジェクトに関連しているようです。 'json'タグの使い方の説明を読んでください。 – trincot

答えて

0

formBody下の赤いマーク大胆なキーと値のペアを参照してください)。

JSON 1は、可変のvar jsonOneのストアであり、JSON 2は、可変のストアvar jsonTwoであると仮定します。その後、

jsonTwo.formBody[0].sourcePath = jsonOne.sourcePath; 
jsonTwo.formBody[1].targetPath = jsonOne.targetPath; 

さらに値をプッシュすると、forループを作成して一致するアルゴリズムを作成できます。以下のコードでは、ラベルと一致しています。

for (i = 0; i < jsonTwo.formBody.length; i++) { 
    var temp = jsonTwo.formBody[i].label; 
    if (temp === 'Source path') { 
     jsonTwo.formBody[i].sourcePath = jsonOne.sourcePath; 
    } else { 
     jsonTwo.formBody[i].targetPath = jsonOne.targetPath; 
    } 
} 
0

あなたはこれを試すことができます。でも

var obj1 = { 
 
    "sourcePath": "vv", 
 
    "targetPath": "bb" 
 
}; 
 

 
var obj2 = { 
 
"user": "hdpsrvc", 
 
"update": "13/06/2016 17:43:22", 
 
"template": "template_1", 
 
"formBody": [ 
 
    { 
 
     "tabIndex": 0, 
 
     "type": "text", 
 
     "name": "sourcePath", 
 
     "label": "Source path" 
 
    }, 
 
    { 
 
     "tabIndex": 1, 
 
     "type": "text", 
 
     "name": "targetPath", 
 
     "label": "Target path" 
 
    } 
 
]}; 
 

 
obj2.formBody = obj2.formBody.map((item , ind) => Object.assign(
 
    item, 
 
    {[Object.keys(obj1)[ind]]: obj1[Object.keys(obj1)[ind]]} 
 
)); 
 
console.log(obj2);

かを:

var obj1 = { 
 
    "sourcePath": "vv", 
 
    "targetPath": "bb" 
 
}; 
 

 
var obj2 = { 
 
"user": "hdpsrvc", 
 
"update": "13/06/2016 17:43:22", 
 
"template": "template_1", 
 
"formBody": [ 
 
    { 
 
     "tabIndex": 0, 
 
     "type": "text", 
 
     "name": "sourcePath", 
 
     "label": "Source path" 
 
    }, 
 
    { 
 
     "tabIndex": 1, 
 
     "type": "text", 
 
     "name": "targetPath", 
 
     "label": "Target path" 
 
    } 
 
]}; 
 

 
obj2.formBody = obj2.formBody.map(item => Object.assign(
 
    item, 
 
    {[item.name]: obj1[item.name]} 
 
)); 
 
console.log(obj2);

関連する問題