字符串JSON引用名称,而不是被引用的对象
stringify JSON reference name, not the referenced object
我有一个类似的JSON对象,(这是一个例子)
house.keys = {
"key1" : "23456",
"key2" : "97543",
"key3" : "35493"
}
house.doors = [{
"name" : "Front door",
"lock key" : house.keys.key1
}, {
"name" : "Back door",
"lock key" : house.keys.key2
}
]
该对象作为字符串存储在DB中,并在页面加载时读取和parsed()
。它可能会通过用户交互进行编辑,然后需要对更改后的对象进行stringify()
-编辑并将其写回DB。除了stringify()
函数中的一个问题外,我的一切都正常工作。
取而代之的是:
"lock key" : house.keys.key1
我得到这个:
"lock key" : "23456"
如何让stringify()
方法返回被引用对象的名称,而不是被引用对象本身。
我已经研究过使用替换函数:
JSON.stringify(house, replacer); // Where replacer() returns 'something else' for "lock key", but I don't know what 'something else' is.
谢谢。
只需将名称用引号括起来,这样它将被视为字符串,因此不会解析和放置值。
house.doors = [{
"name": "Front door",
"lock key": "house.keys.key1"
}, {
"name": "Back door",
"lock key": "house.keys.key2"
}]
这似乎是我的问题的最佳解决方案。它确实需要更改使用"house"对象的代码。
之前,我引用了这样的密钥:
var key1 = house.doors[0]["lock key"];
现在我必须使用:
var key1 = house.doors[0]["lock key"];
var key1 = eval(key1);
(我相信我写对了。我的实际代码有很大不同。)
总而言之,一个比我正在考虑的其他解决方案更容易的解决方案。
相关文章:
- 引用对象中的通用值
- 使用连字符引用对象的属性名称
- 这在 Object 方法中不引用对象,而是引用函数绑定到的标记
- Javascript对象文字,如何使用“this”来引用对象中的变量
- AngularJS select with ng选项不更新父作用域中的引用对象属性
- 如何在ES6中使用Arrow函数引用对象内部的其他函数
- 调用时可以省略引用对象
- 从函数中引用对象时遇到问题 - Adobe Animate canvas
- 在挖空中引用对象构造函数外部视图模型的属性
- 在 JavaScript 中的回调函数中引用对象
- 从充当事件处理程序的多个方法引用对象属性
- 如何引用对象中的其他节点
- 使用 javascript 通过 ID 正确引用对象
- 使用等效的 Object.indexOf 引用对象中的对象的索引
- Javascript - 事件方法中的引用对象
- 如何避免“this”引用 DOM 元素,并引用对象
- 如何按索引引用对象属性
- 在 AngularJs 中引用对象中的数据
- 如何在没有元素的情况下获取文件引用对象
- 为什么在 JavaScript 中引用对象的不存在属性不会返回引用错误