连接两个 JSON 对象

IT技术 javascript json
2021-01-16 08:04:18

我有两个结构相同的 JSON 对象,我想使用 Javascript 将它们连接在一起。是否有捷径可寻?

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}];
你需要做 jsonArray1 = jsonArray1.concat(jsonArray2);
2021-03-20 08:04:18
对于 1, 2, 3 这对于干净的合并来说很方便: var arr3 = [].concat(arr1, arr2);
2021-03-31 08:04:18
这真的救了我。谢谢@jacobangel
2021-04-03 08:04:18
您对 jsonArray1 值的假设不正确。concat 不修改原始数组,它返回一个新数组。
2021-04-09 08:04:18

如果您更愿意复制属性:

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' }

因为它们是对象,所以您不需要返回它,因为对象是通过引用传递的
2021-03-16 08:04:18
有一个有趣的案例,我需要合并来自两个 JSON 对象的属性,这很有魅力。谢谢。
2021-03-22 08:04:18

实际的方法是使用JS Object.assign。

Object.assign(target, ...sources)

MDN 链接

还有另一个对象扩展运算符,它是为 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 }

这里开始

谢谢,这是我正在寻找的快速解决方案!
2021-03-26 08:04:18

您可以使用 jquery扩展方法。

例子:

o1 = {"foo":"bar", "data":{"id":"1"}};
o2 = {"x":"y"};
sum = $.extend(o1, o2);

结果:

sum = {"foo":"bar", "data":{"id":"1"}, "x":"y"}
更好的解决方案
2021-03-26 08:04:18
jQuery并不过分的情况。
2021-03-27 08:04:18
更简单、更清洁的解决方案。
2021-03-29 08:04:18