使用jquery合并两个json对象

ech*_*hez 21 ajax merge jquery json object

我有两个json对象:

http://example.com/search.json?section=saloon

http://example.com/search.json?section=coupe

我一直在寻找一种方法将这两个对象组合成一个对象.

提前致谢.

Raf*_*fay 52

使用 extend

var object = $.extend({}, object1, object2);
Run Code Online (Sandbox Code Playgroud)

通过传递一个空对象作为目标(第一个)参数,您可以保留两个对象,但是如果要合并第二个对象,则可以像

$.extend(object1, object2);
Run Code Online (Sandbox Code Playgroud)

DEMO


Ale*_*pin 5

好吧,一旦你的JSON被提取和解析,你可以遍历属性并将它们添加到一个新对象.但要小心,如果有相同名称的属性,它们将被覆盖.

var data1 = '{"foo": 123, "test":"foo"}';
var data2 = '{"bar": 456, "test":"bar"}';

var json1 = JSON.parse(data1);
var json2 = JSON.parse(data2);

var merged = {};
for(var i in json1) {
    if (json1.hasOwnProperty(i))
        merged[i] = json1[i];
}
for(var i in json2) {
    if (json2.hasOwnProperty(i))
        merged[i] = json2[i];
}

console.log(merged);
Run Code Online (Sandbox Code Playgroud)

生成的合并JSON对象将是:

{foo: 123, test: "bar", bar: 456}
Run Code Online (Sandbox Code Playgroud)

DEMO

编辑: 正如3nigma所提到的,如果您使用的是jQuery,那么您最好使用它$.extend.如果您不想修改现有对象,请不要忘记首先传递空对象.