javascript - 通过变量访问嵌套的 Javascript JSON 属性

标签 javascript json variables properties nested

假设我有一个配置文件,其中包含 JSON 属性的路径。我的 JSON 如下所示:

var test = { test: { test2: { test3: 1 } } }

我有一个字符串str =“test.test2.test3”

我知道我可以像这样访问顶级:var foo = "test", test[foo]

但是 test["test.test2.test3"] 不起作用。另一方面 test["test"]["test2"]["test3"] 可以工作,但是如果我有更复杂的对象(有些可以是 5 个级别,有些可以是 3 等)

有没有办法直接访问这个属性,而不是在点上分割并循环?

最佳答案

with(test) eval(str);

有人的头爆炸了吗?

要么就是这个,要么

eval('test.' + str);

从不良做法篮子中挑选。

尽管对于第一个示例,如果您确实想要您想要的值,则可以这样做

var value;
with(test) value = eval(str);

但是这种做法削弱了这部不良做法杰作的纯粹性。

关于javascript - 通过变量访问嵌套的 Javascript JSON 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5412014/

相关文章:

jquery - 将多个json字符串转换为一个字符串

python - ArrayField 中的 Django JSONField

linux - mutt 似乎忽略了 EMAIL 环境变量和 .muttrc 设置

javascript - Laravel 通过 javascript 选择项目

javascript - Angular 表达式的安全性

javascript - 使用 insertAdjacentHTML 在 .js 文件中给出错误,但在控制台代码段中没有给出错误

php - JSON Post 并将数组解码为 PHP

java - 如何使用一个类中的静态变量来更新另一个类中的非静态实例变量?

python - 如何在Python中将变量限制为零

javascript - 未捕获( promise )错误: Passed function is not well-serializable