Копирование объекта AJAX JSON в существующий объект

У меня есть несколько прототипов Javascript. Первоначально экземпляры будут иметь только заполненные идентификаторы с некоторой общей информацией о заполнителях для других данных. Затем я отправляю сообщение на сервер с идентификатором и типом объекта (используя функцию AJAX jQuery), и сервер возвращает объект JSON со всей недостающей информацией (но без идентификатора). Переменные в возвращенном объекте имеют точно такое же имя, как и в существующем объекте.

Какой самый простой способ перенести это в существующий пустой объект? Я придумал несколько альтернатив

  • установить объект равным возвращенному объекту, затем скопировать в id (теряет функции прототипа?)
  • создать функцию для каждого объекта, которая берет объект с идентичной структурой и копирует данные
  • перебрать пары ключ-значение объекта JSON и скопировать их в существующий объект

Если я использую третий вариант, это правильный способ сделать это?:

for (var key in json) {
    if (object.hasOwnProperty(key)) {
        object[key] = json[key];
    }
}

при условии, json это возвращенный объект и object это существующий объект.

2 ответа

Решение

Попробуйте это с помощью extend ():

var newObject = jQuery.extend({}, oldObject);

Alternative without jQuery is to use the javascript Object.assign method.

Object.assign(targetObject, json);

Вы можете использовать jQuery.extend: http://api.jquery.com/jQuery.extend/

$.extend(object1,object2);

Если ваш JSON является строкой, то сначала создайте объект из этого:

var object1=$.parseJSON(myJsonString);
Другие вопросы по тегам