How can I join two parts of a Json object into one?

1

I am developing an application with ionic 2, in the page1 I request information from a database, and return an array with objects with a structure like the following:

data = [{
  id: "Id del registro",
  propiedad1 : "mi propiedad 1",
  propiedad2 : "mi propiedad 2",
  propiedad5 : "mi propiedad 5",
  propiedad7 : "mi propiedad 7",
  propiedad8 : "mi propiedad 8",
  propiedad10 : "mi propiedad 10",
  propiedad15 : "mi propiedad 15",
  propiedad16 : "mi propiedad 16",
  propiedad18 : "mi propiedad 18"
},
{...},
Miles de elementos más...];

In this arrangement I can get thousands of elements, the reason why I do not ask all the properties of the object Json , when going to page2 I pass some of the elements of the array data, which would be one of these objects, in page2 I request the missing information to the database, I must return an array of a single element with the missing properties of the object that was passed as a parameter to page2

Example:

respuesta = [{
    propiedad3 : "mi propiedad 3",
    propiedad4 : "mi propiedad 4",
    propiedad6 : "mi propiedad 6",
    propiedad9 : "mi propiedad 9",
    propiedad11 : "mi propiedad 11",
    propiedad12 : "mi propiedad 12",
    propiedad13 : "mi propiedad 13",
    propiedad14 : "mi propiedad 14"
}];

Now, what I want is to merge all the properties into a single Json object. what he tried was the following

# page2.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, ModalController, ViewController, MenuController } from 'ionic-angular';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';

import { DetalleEventoPage } from '../detalle-evento/detalle-evento';
//import { AgregarEventoPage } from '../agregar-evento/agregar-evento';


/**
 * Generated class for the ContenidoDisciplinaPage page.
 *
 * See http://ionicframework.com/docs/components/#navigation for more info
 * on Ionic pages and navigation.
 */

@IonicPage()
@Component({
  selector: 'page-contenido-disciplina',
  templateUrl: 'contenido-disciplina.html',
})
export class ContenidoDisciplinaPage {
  parte1ObjetoJson;
  miObjetoJson : {
   id ?: string,
   propiedad1 ?: string,
   propiedad2 ?: string,
   propiedad3 ?: string,
   propiedad4 ?: string,
   propiedad5 ?: string,
   propiedad6 ?: string,
   propiedad7 ?: string,
   propiedad8 ?: string,
   propiedad9 ?: string,
   propiedad10 ?: string,
   propiedad11 ?: string,
   propiedad12 ?: string,
   propiedad13 ?: string,
   propiedad14 ?: string,
   propiedad15 ?: string,
   propiedad16 ?: string,
   propiedad17 ?: string,
   propiedad18 ?: string
}
  constructor(public navCtrl: NavController , public http: Http , public navParams: NavParams) {
    this.parte1ObjetoJson= navParams.get('parte1ObjetoJson');
    this.miObjetoJson = this.parte1ObjetoJson;
    console.log(this.miObjetoJson);

    let body=JSON.stringify({id: this.parte1ObjetoJson.id});
    let url= "miURL";

    this.http.post( url,body).map(res => res.json()).subscribe(parte2=> {
        this.miObjetoJson = parte2;
        console.log(this.miObjetoJson);
    });
  }
}

The result I get is the following:

console 1:

{ propiedad1 : "mi propiedad 1", propiedad2 : "mi propiedad 2", propiedad5 : "mi propiedad 5", propiedad7 : "mi propiedad 7", propiedad8 : "mi propiedad 8", propiedad10 : "mi propiedad 10", propiedad15 : "mi propiedad 15", propiedad16 : "mi propiedad 16", propiedad18 : "mi propiedad 18"}

console 2:

{ propiedad3 : "mi propiedad 3", propiedad4 : "mi propiedad 4", propiedad6 : "mi propiedad 6", propiedad9 : "mi propiedad 9", propiedad11 : "mi propiedad 11", propiedad12 : "mi propiedad 12", propiedad13 : "mi propiedad 13", propiedad14 : "mi propiedad 14"}

How do I get these two parts together?

    
asked by Daniel Enrique Rodriguez Caste 04.09.2017 в 17:10
source

1 answer

0

You can use the Object.assign () method, the which is used to copy the values of all the enumerable properties of one or more source objects to a target object.

let obj_1 = { propiedad1 : "mi propiedad 1", propiedad2 : "mi propiedad 2", propiedad5 : "mi propiedad 5", propiedad7 : "mi propiedad 7", propiedad8 : "mi propiedad 8", propiedad10 : "mi propiedad 10", propiedad15 : "mi propiedad 15", propiedad16 : "mi propiedad 16", propiedad18 : "mi propiedad 18"};
let obj_2 = { propiedad3 : "mi propiedad 3", propiedad4 : "mi propiedad 4", propiedad6 : "mi propiedad 6", propiedad9 : "mi propiedad 9", propiedad11 : "mi propiedad 11", propiedad12 : "mi propiedad 12", propiedad13 : "mi propiedad 13", propiedad14 : "mi propiedad 14"};

let obj_unidos = Object.assign(obj_1, obj_2);

console.log(obj_unidos);
    
answered by 04.09.2017 / 18:25
source