假设我有一个配置文件,其中包含 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/