将JSON的X-number合并到一个JavaScript对象中

时间:2015-04-23 18:45:20

标签: javascript json object

我有几个从服务器检索数据的Ajax请求...... 我想将它们一起添加,所以我可以稍后使用数据集。

这就是一个JSON的样子:

{
   "51" : { id:"51", name:"frank" },
   "52" : { id:"52", name:"jonny" }
}

一秒钟后,可能会出现另一个,结构完全相同。我如何只是"追加"一个新的json,用来制作一个具有相同结构的大型对象。

EG :(像这样追加)

{
   "51" : { id:"51", name:"frank" },
   "52" : { id:"52", name:"jonny" },
   "72" : { id:"72", name:"daniel"},
   "73" : { id:"73", name:"lisa"},
   "74" : { id:"74", name:"ida"},
   "75" : { id:"75", name:"ali"}       
}

2 个答案:

答案 0 :(得分:4)

假设ID始终是唯一的,您可以执行以下操作:

var buffer = {};

messageSource.on('message', function (msg) {
    var msgKeys = Object.keys(msg);
    msgKeys.forEach(function (key) {
        buffer[key] = (buffer[key] || []).push(msg[key]); // Only change, append to list for that key
    });
});

如果您无法保证唯一ID,则需要进行一些小的更改:

{{1}}

答案 1 :(得分:-1)

您应该使用Jquery $.merge

var obj1 = {
   "51" : { id:"51", name:"frank" },
   "52" : { id:"52", name:"jonny" }
};

var obj2 = {
   "72" : { id:"72", name:"daniel"},
   "73" : { id:"73", name:"lisa"},
   "74" : { id:"74", name:"ida"},
   "75" : { id:"75", name:"ali"}       
}

var result =  $.extend(obj1, obj2);

工作示例here