How to merge 2 or more Json Objects into 1 Only

2

Would anyone know if there is a way to join 2 (two) or more Json Objects in Only 1 (one) Json object with all the data unified? How could this union be made?

Example below:

    
asked by anonymous 17.07.2018 / 03:52

3 answers

1

JS has the concat method, which concatenates two arrays in one.

See the example

var arrayA = [{
  nome: "fulano 1",
  idade: 30
}, {
  nome: "fulano 2",
  idade: 31
}, {
  nome: "fulano 3",
  idade: 32
}];

var arrayB = [{
  nome: "fulano 4",
  idade: 30
}, {
  nome: "fulano 5",
  idade: 31
}, {
  nome: "fulano 6",
  idade: 32
}];


var arrayC= arrayA.concat(arrayB);
console.log(arrayC);

If there are 3 (or more) arrays, you can connect with successive concat

var arrayN= arrayA.concat(arrayB).concat(arrayC)...concat(arrayZ);

or nest successively

var arrayN= arrayA.concat(arrayB.concat(arrayC)...concat(arrayZ)))...));

Here is an example of 4 arrays with the concat method successive:

    var arrayA = [{
      nome: "fulano 1",
      idade: 30
    }, {
      nome: "fulano 2",
      idade: 31
    }, {
      nome: "fulano 3",
      idade: 32
    }];
    
    var arrayB = [{
      nome: "fulano 4",
      idade: 30
    }, {
      nome: "fulano 5",
      idade: 31
    }, {
      nome: "fulano 6",
      idade: 32
    }];

    var arrayC = [{
      nome: "fulano 7",
      idade: 30
    }, {
      nome: "fulano 8",
      idade: 31
    }, {
      nome: "fulano 9",
      idade: 32
    }];

    var arrayD = [{
      nome: "fulano 10",
      idade: 30
    }, {
      nome: "fulano 11",
      idade: 31
    }, {
      nome: "fulano 12",
      idade: 32
    }];

    var arrayN= arrayA.concat(arrayB).concat(arrayC).concat(arrayD);
    console.log(arrayN);

And here's an example of 4 nested concact arrays

    var arrayA = [{
      nome: "fulano 1",
      idade: 30
    }, {
      nome: "fulano 2",
      idade: 31
    }, {
      nome: "fulano 3",
      idade: 32
    }];
    
    var arrayB = [{
      nome: "fulano 4",
      idade: 30
    }, {
      nome: "fulano 5",
      idade: 31
    }, {
      nome: "fulano 6",
      idade: 32
    }];

    var arrayC = [{
      nome: "fulano 7",
      idade: 30
    }, {
      nome: "fulano 8",
      idade: 31
    }, {
      nome: "fulano 9",
      idade: 32
    }];

    var arrayD = [{
      nome: "fulano 10",
      idade: 30
    }, {
      nome: "fulano 11",
      idade: 31
    }, {
      nome: "fulano 12",
      idade: 32
    }];

    var arrayN= arrayA.concat(arrayB.concat(arrayC.concat(arrayD)));
    console.log(arrayN);

As you can see the result is the same. So which one is the best?

Particularly I always opt for what is more readable. In this case the successive ones avoid being deceived in the order of closing of the relatives.

    
17.07.2018 / 04:30
2

Good looks like two arrays. In this case, this would suffice:

var arr1 = [{nome: "f1"}, {nome: "f2"}];
var arr2 = [{nome: "f3"}, {nome: "f4"}];
var junto = arr1.concat(arr2);
    
17.07.2018 / 04:27
-1

You can put them in a Javascript Object, it would look like this:

//JSON
//Se estiver usando json_encode do php
//Vai receber algo parecido com isso.
var obj1 = {"nome":"Carlos","id":"140"};
var obj2 = {"nome":"Luciana","id":"20"};

//Criando Objeto JavaScript
//E atribuindo os json aos campos
var all = new Object();
all.a = obj1;
all.b = obj2;

//Acessando dados
console.log(all);
console.log(all.a);
console.log(all.a.nome);

With brackets in JSON

//JSON
var obj1 = [{"nome":"Carlos","id":"140"}];
var obj2 = [{"nome":"Luciana","id":"20"}];

//Criando Objeto JavaScript
//E atribuindo os json aos campos
var all = new Object();
all.a = obj1;
all.b = obj2;

//Acessando dados
console.log(all);
console.log(all.a[0]);
console.log(all.a[0].nome);
    
17.07.2018 / 08:11