【问题标题】:Merging a array of json objects into single objects using jquery [duplicate]使用jquery将一组json对象合并为单个对象[重复]
【发布时间】:2014-01-07 10:17:51
【问题描述】:

我有一个这样的 json 对象数组,看起来像这样

[{
    "Name": "Nikhil",
    "Surname": "Agrawal"
}, {
    "profession": "java developer",
    "experience": "2 years"
}, {
    "company": "xyz",
    "city": "hyderabad"
}]

现在我要做的是将整个数组组合成单个 json 对象

{
    "Name": "Nikhil",
    "Surname": "Agrawal"
    "profession": "java developer",
    "experience": "2 years"
    "company": "xyz",
    "city": "hyderabad"
}

我正在尝试使用这个jQuery.merge(firstObject, secondObject),但它只需要两个参数所以我需要再次应用循环并交换对象等等复杂的逻辑。有没有其他方法可以合并这个??

【问题讨论】:

  • @GeorgeStocker 可能还有其他重复项,但此处标记的是关于创建新数组

标签: javascript jquery json


【解决方案1】:

Javascript

var json = [{
    "Name": "Nikhil",
    "Surname": "Agrawal"
}, {
    "profession": "java developer",
    "experience": "2 years"
}, {
    "company": "xyz",
    "city": "hyderabad"
}];

var newObj = {};
for(var i = 0; i < json.length; i++){
    for(x in json[i]){
        console.log(x);
        newObj[x] = json[i][x];       
    }
}

JS 小提琴: http://jsfiddle.net/wVGah/

【讨论】:

    【解决方案2】:

    我不认为它可以在一次调用中完成,所以试试

    var obj = {};
    $.each(arr, function (i, o) {
        $.extend(obj, o)
    })
    console.log(obj)
    

    演示:Fiddle

    【讨论】:

    • 先生,谢谢。你第二次帮助了我。为你 +1。
    【解决方案3】:

    像这样使用 jQuery .extend 函数:

    var json = [{"Name": "Nikhil","Surname": "Agrawal"},{"profession": "java developer","experience":"2 years"},{"company": "xyz","city":"hyderabad"}];
    
    var json2 = json[0];
    
    for(var i = 1; i<json.length; i++){
        $.extend(json2,json[i]);
    }
    

    Here is a working Fiddle

    【讨论】:

      猜你喜欢
      • 2021-11-12
      • 1970-01-01
      • 2016-02-25
      • 2018-05-24
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      相关资源
      最近更新 更多