首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript / JQUERY中合并两个JSON数据

如何在javascript / JQUERY中合并两个JSON数据
EN

Stack Overflow用户
提问于 2015-04-25 15:53:01
回答 3查看 8.1K关注 0票数 1

我想使用Javascript或Jquery合并两个JSON数据。

代码语言:javascript
复制
var object1 = [{
    "id": 11,
    "name": "Vasanth",
    "username": "Vasanth.Rajendran",
    "email": "vasanth@mail.com",
    "address": {
      "street": "Nungampakkam",
      "suite": "No154",
      "city": "Chennai",
      "zipcode": "31428-2261",
      "geo": {
        "lat": "-38.2386",
        "lng": "57.2232"
      }
    },
    "phone": "024-648-3804",
    "website": "google.net",
    "company": {
      "name": "Test",
      "catchPhrase": "Centralized empowering task-force",
      "bs": "target end-to-end models"
    }
  }];

var object2 = [{
    "id": 2,
    "name": "Raju",
    "username": "Raju.Rajendran",
    "email": "Raju@mail.com",
    "address": {
      "street": "Nungampakkam",
      "suite": "No154",
      "city": "Chennai",
      "zipcode": "31428-2261",
      "geo": {
        "lat": "-38.2386",
        "lng": "57.2232"
      }
    },
    "phone": "024-648-3804",
    "website": "google.net",
    "company": {
      "name": "Test",
      "catchPhrase": "Centralized empowering task-force",
      "bs": "target end-to-end models"
    }
  }];

示例结果:

代码语言:javascript
复制
[
  {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {
      "name": "Romaguera-Crona",
      "catchPhrase": "Multi-layered client-server neural-net",
      "bs": "harness real-time e-markets"
    }
  },
  {
    "id": 2,
    "name": "Ervin Howell",
    "username": "Antonette",
    "email": "Shanna@melissa.tv",
    "address": {
      "street": "Victor Plains",
      "suite": "Suite 879",
      "city": "Wisokyburgh",
      "zipcode": "90566-7771",
      "geo": {
        "lat": "-43.9509",
        "lng": "-34.4618"
      }
    },
    "phone": "010-692-6593 x09125",
    "website": "anastasia.net",
    "company": {
      "name": "Deckow-Crist",
      "catchPhrase": "Proactive didactic contingency",
      "bs": "synergize scalable supply-chains"
    }
  }];
EN

回答 3

Stack Overflow用户

发布于 2015-04-25 15:57:31

object1object2是数组。可以使用concat方法连接数组。

代码语言:javascript
复制
newObj = object1.concat(object2);

代码语言:javascript
复制
var object1 = [{
    "id": 11,
    "name": "Vasanth",
    "username": "Vasanth.Rajendran",
    "email": "vasanth@mail.com",
    "address": {
      "street": "Nungampakkam",
      "suite": "No154",
      "city": "Chennai",
      "zipcode": "31428-2261",
      "geo": {
        "lat": "-38.2386",
        "lng": "57.2232"
      }
    },
    "phone": "024-648-3804",
    "website": "google.net",
    "company": {
      "name": "Test",
      "catchPhrase": "Centralized empowering task-force",
      "bs": "target end-to-end models"
    }
  }];

var object2 = [{
    "id": 2,
    "name": "Raju",
    "username": "Raju.Rajendran",
    "email": "Raju@mail.com",
    "address": {
      "street": "Nungampakkam",
      "suite": "No154",
      "city": "Chennai",
      "zipcode": "31428-2261",
      "geo": {
        "lat": "-38.2386",
        "lng": "57.2232"
      }
    },
    "phone": "024-648-3804",
    "website": "google.net",
    "company": {
      "name": "Test",
      "catchPhrase": "Centralized empowering task-force",
      "bs": "target end-to-end models"
    }
  }];

var newObject = object1.concat(object2);
console.log(newObject);

票数 4
EN

Stack Overflow用户

发布于 2015-04-25 15:55:13

试试这个:

代码语言:javascript
复制
var newObj = [object1[0], object2[0]];

代码语言:javascript
复制
var newObj = object1.concat(object2);

concat创建一个新的数组,该数组由调用它的对象中的元素组成,后面依次为每个参数、该参数的元素(如果参数是数组)或参数本身(如果参数不是数组)。

参考:Array.prototype.concat()

票数 2
EN

Stack Overflow用户

发布于 2015-04-25 15:59:17

正如我所见,它们是数组。您可以执行以下操作:

代码语言:javascript
复制
var object3 = object1.concat(object2);

    //you can access your objects like this: object3[0] and object3[1]
    //Or in for loop
   for (i=0; i<object3.length; i++) {
       console.log(object3[i]);
   }

否则,对于对象,您可以检查How can I merge properties of two JavaScript objects dynamically?

供参考:

代码语言:javascript
复制
var array = [] // this is array
var theObject = {} // json object

如果您想将它们合并到一个对象中,请尝试:

代码语言:javascript
复制
jQuery.extend(object1[0], object2[2]);

但是如果你这样做,你的所有属性都将被替换,因为它们是相同的。这就是为什么上面的方法最适合您的情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29862545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档