【问题标题】:How can i combine two json values using jquery?如何使用 jquery 组合两个 json 值?
【发布时间】:2014-12-22 18:06:37
【问题描述】:

我有两个这样的 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"
}]

请帮助我,在此先感谢。

【问题讨论】:

    标签: jquery json html


    【解决方案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]);

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


    或者你也可以使用extend:

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

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

    $.extend(object1, object2);
    

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

    参考:Merge two json objects with jquery

    【讨论】:

    • JSON 数据实际上是字符串。转换后才变成数组
    • @charlietfl 是的,OP 可以使用JSON.parse() 进行转换。更好吧?\
    • 这只是定义的东西......现在很多人在看到数组或对象并将它们称为 JSON 时会感到困惑,反之亦然
    【解决方案2】:

    你可以试试这个:

    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?

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

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2010-09-24
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多