92 votes

Concaténer deux objets JSON

J'ai deux objets JSON avec la même structure et je veux les concaténer ensemble en utilisant Javascript. Existe-t-il un moyen facile de le faire ?

111voto

jacobangel Points 3848

Sur la base de votre description dans les commentaires, vous feriez simplement un tableau concat :

var jsonArray1 = [{'name': "doug", 'id':5}, {'name': "dofug", 'id':23}];
var jsonArray2 = [{'name': "goud", 'id':1}, {'name': "doaaug", 'id':52}];
jsonArray1 = jsonArray1.concat(jsonArray2);
// jsonArray1 = [{'name': "doug", 'id':5}, {'name': "dofug", 'id':23}, 
//{'name': "goud", 'id':1}, {'name': "doaaug", 'id':52}];

40voto

user53964 Points 199

Si vous préférez copier les propriétés :

var json1 = { value1: '1', value2: '2' };
var json2 = { value2: '4', value3: '3' };


function jsonConcat(o1, o2) {
 for (var key in o2) {
  o1[key] = o2[key];
 }
 return o1;
}

var output = {};
output = jsonConcat(output, json1);
output = jsonConcat(output, json2);

La sortie du code ci-dessus est{ value1: '1', value2: '4', value3: '3' }

33voto

Raunaq Sachdev Points 418

La manière réelle est d'utiliser JS Object.assign.

Object.assign(target, ...sources)

Lien MDN

Il existe un autre opérateur d'étalement d'objet qui est proposé pour ES7 et qui peut être utilisé avec des plugins Babel.

 Obj = {...sourceObj1, ...sourceObj2}

31voto

Alvaro Points 51

I use :

let x = { a: 1, b: 2, c: 3 }

let y = {c: 4, d: 5, e: 6 }

let z = Object.assign(x, y)

console.log(z)

// OUTPUTS:
{ a:1, b:2, c:4, d:5, e:6 }

D'ici.

26voto

tnimas Points 391

Vous pouvez utiliser la méthode jquery extend.

Exemple :

o1 = {"foo":"bar", "data":{"id":"1"}};
o2 = {"x":"y"};
sum = $.extend(o1, o2);

RESULTAT :

sum = {"foo":"bar", "data":{"id":"1"}, "x":"y"}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X