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

时间:2011-03-23 21:44:50

标签: 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个等),这不是一个单行。

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

1 个答案:

答案 0 :(得分:4)

with(test) eval(str);

有没有人的头爆炸?

就是那个或

eval('test.' + str);

从糟糕的练习篮中挑选。

虽然对于第一个例子,如果你真的想要这个值你想要这个

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

但是这种做法会剥夺这种不良实践杰作的纯洁性。