我有2个对象
json1 = {
"name": "padd",
"value": "1",
"parentName": "",
"parentValue": "",
"children": [],
"canDisplay": true,
"showRecord": true
}
json2 = {
"name": "note",
"value": "1",
"parentName": "",
"parentValue": "",
"children": [{
"name": "padd",
"value": "1",
"parentName": "",
"parentValue": "",
"children": [],
"canDisplay": true,
"showRecord": true
}],
"canDisplay": true,
"showRecord": true
}
json1
中遗漏的密钥应从json2
添加,并且json1
和json2
中匹配的密钥值也不应替换为json2
至json1
。
答案 0 :(得分:0)
以下代码将扫描json2并将json2的所有属性添加到json1中,json1中缺少这些属性,同时保留json1已经具有的那些属性的值。
for (var prop in json2) {
if (json1.hasOwnProperty(prop)) {
// move on to next property
continue;
}
json1[prop] = json2[prop];
}
答案 1 :(得分:0)
您可以使用Object.keys方法循环遍历json1的键,如果在json2中找不到键,则将其设置为空字符串。 e.g。
var keys1 = Object.keys(json1);
for (var key_i=0; key_i<keys1.length; key_i++) {
var key = keys1[key_i];
if (typeof json2[key] === 'undefined') {
json2[key] = '';
}
}
编辑:
如果要将值从json1复制到json2,如果不是在json2中,则更改:
json2[key] = '';
到
json2[key] = json1[key];