如何使用jquery组合两个json值?

时间:2014-10-27 14:21:17

标签: jquery json html5

我有两个这样的JSON对象:

第一个:

[{
    "id": 5001,
    "count": "0",
    "type": "None"
},
{
    "id": 5002,
    "count": "0",
    "type": "Glazed"
},
{
    "id": 5005,
    "count": "0",
    "type": "Sugar"
},
{
    "id": 5003,
    "count": "0",
    "type": "Chocolate"
},
{
    "id": 5004,
    "count": "0",
    "type": "Maple"
},
{
    "id": 5009,
    "count": "0",
    "type": "Juice"
}]

第二个:

[{
    "id": 5001,
    "count": "1"
},
{
    "id": 5002,
    "count": "10"
},
{
    "id": 5005,
    "count": "20"
},
{
    "id": 5003,
    "count": "70"
},
{
    "id": 5004,
    "count": "50"
},
{
    "id": 5009,
    "count": "0"
}]

如何组合这两个JSON对象,如:

[{
    "id": 5001,
    "count": "1",
    "type": "None"
},
{
    "id": 5002,
    "count": "10",
    "type": "Glazed"
},
{
    "id": 5005,
    "count": "20",
    "type": "Sugar"
},
{
    "id": 5003,
    "count": "70",
    "type": "Chocolate"
},
{
    "id": 5004,
    "count": "50",
    "type": "Maple"
},
{
    "id": 5009,
    "count": "0",
    "type": "Juice"
}]

请帮助我,提前致谢。

2 个答案:

答案 0 :(得分:1)

由于JSON数据是一个数组,您可以使用标准数组函数.push()

data.push(data1);

小提琴:



var data = [{"id": 1, "name": "Praveen"}, {"id": 2, "name": "Kumar"}];
var newD = [{"id": 3, "name": "StackOverflow"}];
data.push(newD[0]);




您可以使用data来查看console.log(data)的内容。


或者您也可以使用extend

var object = $.extend({}, object1, object2);

通过传递一个空对象作为目标(第一个)参数,你可以保留这两个对象,如果你想要合并第二个对象,你可以这样做

$.extend(object1, object2);

小提琴:http://jsfiddle.net/praveenscience/gyysg5zm/

参考:Merge two json objects with jquery

答案 1 :(得分:0)

你可以试试这个:

function merge_options(obj1,obj2){
    var obj3 = {};
    for (var attrname in obj1) { obj3[attrname] = obj1[attrname]; }
    for (var attrname in obj2) { obj3[attrname] = obj2[attrname]; }
    return obj3;
}

自: How can I merge properties of two JavaScript objects dynamically?

并根据您的需求进行自定义,例如覆盖较低的数量。