【发布时间】:2013-04-28 17:07:40
【问题描述】:
我有几个 Javascript 原型。最初,实例将仅填写 ID,并带有一些用于其他数据的通用占位符信息。然后,我向服务器发送一条带有 ID 和对象类型的消息(使用 jQuery 的 AJAX 函数),服务器返回一个带有所有缺失信息(但没有 ID)的 JSON 对象。返回对象中的变量与现有对象中的变量名称完全相同。
将它转移到现有的空对象中的最简单方法是什么?我想出了一些替代方案
- 将对象设置为等于返回的对象,然后复制 id(丢失原型函数?)
- 为每个对象创建一个函数,获取具有相同结构的对象并复制数据
- 遍历 JSON 对象的键值对并将其复制到现有对象中
如果我使用第三个选项,这是正确的方法吗? :
for (var key in json) {
if (object.hasOwnProperty(key)) {
object[key] = json[key];
}
}
假设json 是返回的对象,object 是现有对象。
【问题讨论】:
-
如果
json是纯 JSON,那么我认为您甚至不需要hasOwnProperty检查。除非有人一直在嘲笑Object.prototype。 -
问题是,你想用你的 JSON 对象做什么。如果您想评估一个对象,JSON.parse() 可以为您解决问题。如果要将其合并到现有对象,jQuery.extend() 会是一个更好的建议。
-
@PaulGrime 我这样做是为了预防,以防
json对象中存在我不想要的现有object中的额外键。如果您注意到,我正在循环访问json中的键,但会检查object。
标签: javascript jquery ajax json