How to Merge 2 or more Json Objects into Only 1

Asked

Viewed 4,547 times

2

How can I unite two or plus Objects in Json so that you’re just one object Json, but this, containing all the unified data?

How this union could be made?

Example below:

Obj 1
[
0:{nome:"Fulano",idade:"30",...}
1:{nome:"Fulano2",idade:"45",...}
2:{nome:"Fulano3",idade:"78",...}
]

Obj 2
[
0:{nome:"Fulano6",idade:"45",...}
1:{nome:"Fulano7",idade:"20",...}
2:{nome:"Fulano9",idade:"45",...}
]

Ficando assim: 
[
0:{nome:"Fulano",idade:"30",...}
1:{nome:"Fulano2",idade:"45",...}
2:{nome:"Fulano3",idade:"78",...}
0:{nome:"Fulano6",idade:"45",...}
1:{nome:"Fulano7",idade:"20",...}
2:{nome:"Fulano9",idade:"45",...}
]

Json image

4 answers

2

Well they look like two arrays. In that case, this would be enough:

var arr1 = [{nome: "f1"}, {nome: "f2"}];
var arr2 = [{nome: "f3"}, {nome: "f4"}];
var junto = arr1.concat(arr2);
  • What if there are 3 or more arrays? It would look like this ? var together = arr1.Concat(Concat(arr2)arr3));

  • arr1.Concat(arr2). Concat(arr3)

2


The JS has the method Concat , that concatenates two arrays into one.

Take 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 in succession

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

Here an example of 4 arrays with the successive Concat method:

    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 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 is the best?

Particularly I always choose the one that is more readable. In this case the successive ones avoid to err in the order of closing the parentheses.

0

Good evening friends, you talked about Javascript objects in the title; But then in the example below it was directed to the Object Array.

I was able to concatenate objects this way:

!No Json’s, No Array’s, Yes Javascript objects.

Using the Object API. Where I pass the two objects and concatenate into a new one with attributes related to them.

Example:

obj1 = {
  par1,
  par2
};

obj2 = {
  par3,
  par4
};

Object.assign({obj1}, {obj2});

Return

{
    obj1: {
      par1,
      par2
    },
    obj2: {
      par3,
      par4
    }
}

If I want to join their attributes. I take the {} of the parameter objects.

Second example:

Object.assign(obj1, obj2);

Return

{
  par1,
  par2,
  par3,
  par4
}

-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 on 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);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.