我有两个结构相同的 JSON 对象,我想使用 Javascript 将它们连接在一起。是否有捷径可寻?
连接两个 JSON 对象
IT技术
javascript
json
2021-01-16 08:04:18
6个回答
根据您在评论中的描述,您只需执行一个数组连接:
var jsonArray1 = [{'name': "doug", 'id':5}, {'name': "dofug", 'id':23}];
var jsonArray2 = [{'name': "goud", 'id':1}, {'name': "doaaug", 'id':52}];
jsonArray1 = jsonArray1.concat(jsonArray2);
// jsonArray1 = [{'name': "doug", 'id':5}, {'name': "dofug", 'id':23},
//{'name': "goud", 'id':1}, {'name': "doaaug", 'id':52}];
如果您更愿意复制属性:
var json1 = { value1: '1', value2: '2' };
var json2 = { value2: '4', value3: '3' };
function jsonConcat(o1, o2) {
for (var key in o2) {
o1[key] = o2[key];
}
return o1;
}
var output = {};
output = jsonConcat(output, json1);
output = jsonConcat(output, json2);
上面代码的输出是{ value1: '1', value2: '4', value3: '3' }
实际的方法是使用JS Object.assign。
Object.assign(target, ...sources)
还有另一个对象扩展运算符,它是为 ES7 提出的,可以与 Babel 插件一起使用。
Obj = {...sourceObj1, ...sourceObj2}
我用:
let x = { a: 1, b: 2, c: 3 }
let y = {c: 4, d: 5, e: 6 }
let z = Object.assign(x, y)
console.log(z)
// OUTPUTS:
{ a:1, b:2, c:4, d:5, e:6 }
从这里开始。
您可以使用 jquery扩展方法。
例子:
o1 = {"foo":"bar", "data":{"id":"1"}};
o2 = {"x":"y"};
sum = $.extend(o1, o2);
结果:
sum = {"foo":"bar", "data":{"id":"1"}, "x":"y"}