adhikar patil Ответов: 1

Как объединить json в angular 8


Привет,
У меня есть три json в массиве like, а также я хочу array[0] с первым json, включая другие JSON, не совпадающие с ключом с пустым значением. Пожалуйста, предоставьте мне решение в angular 8

json1 = {имя: "Адхикар", электронная почта: "adhikar@gmail.com", номер телефона: "(898) 990-9090", cropType: "rawCrop", cropName: {jawar: true, bajri: false}, cropPeriod: 120}

json2 = {имя: "Сагар", электронная почта: "sagar@gmail.com", phoneNumber: "", cropType: "", phvalue: 90 }

json3 = {имя: "Аджай", электронная почта: "ajay@gmail.com", телефонный номер: "", cropType: "rawCrop", cropWeather: "winter"}



поэтому я хочу обновить свой массив[0] Подобный этому

json1 = {имя: "прав человека", электронной почты: "adhikar@gmail.com", номер телефона: "(898) 990-9090", cropType: "rawCrop", cropName: {jawar: правда, bajri: ложь}, cropPeriod: 120, pH-баланс кожи:"", cropWeather: ""}

json2 = {имя: "Сагар", электронная почта: "sagar@gmail.com", phoneNumber: "", cropType: "", phvalue: 90 }

json3 = {имя: "Аджай", электронная почта: "ajay@gmail.com", телефонный номер: "", cropType: "rawCrop", cropWeather: "winter"}

Что я уже пробовал:

getDynamicFormData() {    
    this.dynamicFormResponseService.get(this.id).subscribe(
      res => {
        if (res && res != null) {
          this.dynamicFormData = res;
          const array = [];
          const ids = [];
          this.dynamicFormData.forEach(function (item) {
            if (array[0] == null) {
              array.push(JSON.parse(item.response));
            }
            else {
              var mainArray = JSON.stringify(array[0]);
              for (let key in JSON.parse(mainArray)) {               
                if (JSON.parse(mainArray).hasOwnProperty(key) == JSON.parse(item.response).hasOwnProperty(key)) {
                                  
                }
              }
              console.log(array);
              array.push(JSON.parse(item.response));
              ids.push(item.id);
            }
          });
          this.dynamicFormResponses = array;
          this.dynamicFormResponsesId = ids;
        }
      },
      error => {
        this.toastr.error(error.message);
      }
    );
  }

1 Ответов

Рейтинг:
1

Richard Deeming

Попробуйте что-нибудь вроде этого:

this.dynamicFormData.forEach(function (item) {
    var parsedItem = JSON.parse(item.response);
    
    if (array.length !== 0) {
        var firstItem = array[0];
        Object.keys(parsedItem).forEach(function(key){
            if (!firstItem.hasOwnProperty(key)) {
                firstItem[key] = "";
            }
        });
    }
    
    array.push(parsedItem);
    ids.push(item.id);
});
Object.keys() - JavaScript | MDN[^]
Object.prototype.hasOwnProperty() - JavaScript | MDN[^]