Публикация данных путем объединения данных из формы и ответа API выборки - PullRequest
1 голос
/ 14 июня 2019

Хорошо, поэтому я хочу объединить две данные в определенном формате и сделать запрос на публикацию. Ответ, который я получаю от моего API выборки:

{
    "id":"some-id" 
}

формат JSON данных моей формы:

{
   "origin_port":"jnasjd",
   "destination_port":"csdcsa",
   "stops":3,
   "departure":"kanlskd",
   "arrival":"sndclk",
   "update_params":[
      {
         "stops":3,
         "departure":"jasnkc",
         "arrival":"jnacksa"
      },
      {
         "stops":3,
         "departure":"hsdbkjcs",
         "arrival":"xsnkjc"
      }
   ]
}

Обязательно:

{  "id":"some-id"
   "origin_port":"jnasjd",
   "destination_port":"csdcsa",
   "stops":3,
   "departure":"kanlskd",
   "arrival":"sndclk",
   "update_params":[
      {
         "id":"some-id"
         "stops":3,
         "departure":"jasnkc",
         "arrival":"jnacksa"
      },
      {
         "id":"some-id"
         "stops":3,
         "departure":"hsdbkjcs",
         "arrival":"xsnkjc"
      }
   ]
}

Мой динамический массив update_params, и я хочу добавить идентификатор в каждый его объект Я использую реагирующий каркас в качестве библиотеки внешнего интерфейса.

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Вы можете добавить идентификатор к основному объекту, а для динамического массива update_params вы можете использовать map , чтобы добавить идентификатор к каждому объекту в массиве

Пожалуйста, обратите внимание наэтот пример

const id = {
    "id":"some-id" 
};

const dataset = {
   "origin_port":"jnasjd",
   "destination_port":"csdcsa",
   "stops":3,
   "departure":"kanlskd",
   "arrival":"sndclk",
   "update_params":[
      {
         "stops":3,
         "departure":"jasnkc",
         "arrival":"jnacksa"
      },
      {
         "stops":3,
         "departure":"hsdbkjcs",
         "arrival":"xsnkjc"
      }
   ]
};

dataset.id = "some-id";
dataset.update_params.map(params => params.id = "some-id");

console.log(dataset)
0 голосов
/ 14 июня 2019

Simple: Вы можете использовать Object.assign(obj1, obj2) для объединения объектов.

var combined = Object.assign(obj1, obj2);

REF: Object.assign ()

Harder: Я поиграл с вашим JSON, чтобы создать образцы объектов JavaScript. Ниже я покажу вам, как объединить свойства нескольких объектов JSON.

Мы объединим свойства нескольких объектов JSON в новый объект combined.

var obj1 = JSON.parse(`{ // Creating a sample object you get from the fetch API
  "id":"some-id" 
}`);
var obj2 = JSON.parse(`{ // Creating a sample object for your form data
  "origin_port":"jnasjd",
  "destination_port":"csdcsa",
  "stops":3,
  "departure":"kanlskd",
  "arrival":"sndclk",
  "update_params":[
     {
        "stops":3,
        "departure":"jasnkc",
        "arrival":"jnacksa"
     },
     {
        "stops":3,
        "departure":"hsdbkjcs",
        "arrival":"xsnkjc"
     }
  ]
}`);

// This will be the object made up of the properties of the two objects above obj1 and obj2
var combined = {};

for(var prop in obj1){ // Looping through the properties of obj1
  combined[prop] = obj1[prop]; // Setting the prop of obj1 to be the prop of combined
}
for(var prop in obj2){
  combined[prop] = obj2[prop]; // Setting the prop of obj2 to be the prop of combined
}

document.getElementById("app").innerHTML = JSON.stringify(combined, null, 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...