Копирование объекта 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);