我有幾個Javascript原型。最初,實例只有ID填寫,其他數據有一些通用的佔位符信息。然後,我使用ID和對象類型(使用jQuery的AJAX函數)向服務器發送消息,並且服務器返回一個包含所有缺少信息(但沒有ID)的JSON對象。返回對象中的變量與現有對象中的變量具有完全相同的名稱。將AJAX JSON對象複製到現有對象中
將此轉換爲現有空對象的最簡單方法是什麼?我想出了幾個備選方案
- 設置爲返回的對象的對象,然後在身份證複印件(丟失原型機的功能呢?)
- 創建一個函數爲每接受一個對象具有相同的對象結構和複製數據
- 遍歷JSON對象的鍵值對,並將它們複製到現有的對象
如果我使用了第三個選項,這是做了正確的方法是什麼? :
for (var key in json) {
if (object.hasOwnProperty(key)) {
object[key] = json[key];
}
}
假設json
是返回的對象和object
是現有的對象。
如果'json'是純JSON,那麼我認爲你甚至不需要'hasOwnProperty'檢查。除非有人用'Object.prototype'進行攻擊。 – 2013-05-04 10:48:53
問題是,你想用你的JSON對象做什麼。如果你想評估一個對象,JSON.parse()爲你做了訣竅。如果你想將它合併到一個現有的對象,jQuery.extend()將是一個更好的建議。 – 2013-05-04 11:15:23
@PaulGrime我這樣做是爲了防止在'json'對象中有一個額外的鍵,我不想在現有的'object'中使用它。如果你會注意到,我正在通過'json'中的鍵循環,但是檢查'object'。 – Jaws212 2013-05-04 17:53:39