将两个json / javascript数组合并到一个数组中

我有两个json数组

var json1 = [{id:1, name: 'xxx' ...}] var json2 = [{id:2, name: 'xyz' ...}] 

我想他们合并到单个数组

 var finalObj = [{id:1, name: 'xxx' ...},{id:2, name: 'xyz' ...}] 

问候

你想要concat方法。

 var finalObj = json1.concat(json2); 

第一次出现时,单词“merg”导致人们认为你需要使用.extend ,这是正确的jQuery方法来“合并”JSON对象。 但是, $.extend(true, {}, json1, json2); 将导致共享相同键名的所有值被参数中提供的最新值覆盖。 正如你的问题的回顾显示,这是不受欢迎的。

你所寻求的是一个简单的JavaScript函数,称为.concat 。 这将工作如下:

 var finalObj = json1.concat(json2); 

虽然这不是一个原生的jQuery函数,但您可以轻松将其添加到jQuery库中,以便将来使用,如下所示:

 ;(function($) { if (!$.concat) { $.extend({ concat: function() { return Array.prototype.concat.apply([], arguments); } }); } })(jQuery); 

然后按照需要回想一下:

 var finalObj = $.concat(json1, json2); 

你也可以用它来为这个types的多个数组对象使用类似的:

 var finalObj = $.concat(json1, json2, json3, json4, json5, ....); 

如果你真的想要它的jQuery风格和非常短而甜(缩小)

 ;(function(a){a.concat||a.extend({concat:function(){return Array.prototype.concat.apply([],arguments);}})})(jQuery); 
 ;(function($){$.concat||$.extend({concat:function(){return Array.prototype.concat.apply([],arguments);}})})(jQuery); $(function() { var json1 = [{id:1, name: 'xxx'}], json2 = [{id:2, name: 'xyz'}], json3 = [{id:3, name: 'xyy'}], json4 = [{id:4, name: 'xzy'}], json5 = [{id:5, name: 'zxy'}]; console.log(Array(10).join('-')+'(json1, json2, json3)'+Array(10).join('-')); console.log($.concat(json1, json2, json3)); console.log(Array(10).join('-')+'(json1, json2, json3, json4, json5)'+Array(10).join('-')); console.log($.concat(json1, json2, json3, json4, json5)); console.log(Array(10).join('-')+'(json4, json1, json2, json5)'+Array(10).join('-')); console.log($.concat(json4, json1, json2, json5)); }); 
 center { padding: 3em; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <center>See Console Log</center> 

你可以尝试合并

 var finalObj = $.merge(json1, json2); 

因为你正在使用jQuery。 如何jQuery.extend()方法?

http://api.jquery.com/jQuery.extend/

说明:将两个或多个对象的内容合并到第一个对象中。

也许,你可以使用javascript的数组语法:

 var finalObj =[json1 , json2] 

您可以使用Es 6新function来做到这一点:

 var json1 = [{id:1, name: 'xxx' , ocupation : 'Doctor' }]; var json2 = [{id:2, name: 'xyz' ,ocupation : 'SE'}]; var combineJsonArray = [...json1 , ...json2]; //output should like this [ { id: 1, name: 'xxx', ocupation: 'Doctor' }, { id: 2, name: 'xyz', ocupation: 'SE' } ] 

或者你可以把额外的string或任何两个JSON数组之间:

 var json3 = [...json1 ,"test", ...json2]; // output should like this : [ { id: 1, name: 'xxx', ocupation: 'Doctor' }, 'test', { id: 2, name: 'xyz', ocupation: 'SE' } ] 

试试下面的代码,使用jQuery扩展方法:

 var json1 = {"name":"ramesh","age":"12"}; var json2 = {"member":"true"}; document.write(JSON.stringify($.extend(true,{},json1,json2))) 

作品良好感谢上述结果….

 var json1=["Chennai","Bangalore"]; var json2=["TamilNadu","Karanataka"]; finaljson=json1.concat(json2);