我有一个Angular 2表单值,它是通过以下方式提交form(表单值)后生成的,
{
"LoyaltyNumber": "mal",
"CardAcceptorName": "John",
}
我还有另一个JSON对象,我们需要将最终值发送到服务器。
{
"LoyaltyNumber": {
"tcId": "PREQ_001",
"msgSeq": 1,
"value": ""
},
"CardAcceptorName": {
"tcId": "PREQ_001",
"msgSeq": 1,
"value": ""
}
}
而且,我想从第二个JSON更新value
,并使用第一个JSON中的值。
答案 0 :(得分:1)
您可以使用Object.keys()
遍历第一个json对象的键。 Object.keys()
返回包含键名的字符串数组。因此,我们可以针对该结果调用.forEach()
。在foreach方法中,我们可以使用键来访问secondJsonObj
中的子对象。
Object.keys(firstJsonObj).forEach(key => {
if (secondJsonObj[key]) {
secondJsonObj[key].value = firstJsonObj[key]
}
});
答案 1 :(得分:0)
第一个JSON分配给firstJsonObj,第二个JSON分配给secondJsonObj;
firstJsonObj = {
"LoyaltyNumber": "mal",
"CardAcceptorName": "John",
};
secondJsonObj = {
"LoyaltyNumber": {
"tcId": "PREQ_001",
"msgSeq": 1,
"value": ""
},
"CardAcceptorName": {
"tcId": "PREQ_001",
"msgSeq": 1,
"value": ""
}
};
您可以分配这样的值
secondJsonObj.LoyaltyNumber.value = firstJsonObj.LoyaltyNumber;
secondJsonObj.CardAcceptorName.value = firstJsonObj.CardAcceptorName;
如果要动态。
Object.keys(firstJsonObj).forEach(function(key){
secondJsonObj[key]. value = firstJsonObj[key];
});
答案 2 :(得分:0)
尝试一下:
var json1 = {
"LoyaltyNumber": "mal",
"CardAcceptorName": "John"
};
var json2 = {
"LoyaltyNumber": {
"tcId": "PREQ_001",
"msgSeq": 1,
"value": ""
},
"CardAcceptorName": {
"tcId": "PREQ_001",
"msgSeq": 1,
"value": ""
}
};
json2.LoyaltyNumber.value = json1.LoyaltyNumber;
json2.CardAcceptorName.value= json1.CardAcceptorName;
console.log(JSON.stringify(json2));
输出:
{“ LoyaltyNumber”:{“ tcId”:“ PREQ_001”,“ msgSeq”:1,“ value”:“ mal”},“ CardAcceptorName”:{“ tcId”:“ PREQ_001”,“ msgSeq”:1 ,“ value”:“ John”}}