通过字符串访问JSON成员?

时间:2011-09-01 18:29:37

标签: javascript jquery json

我的JSON:

json_filter = {"CO": "blah"}

我试图通过字符串值访问成员'CO'。但是,结果未定义。

var selectedState = $(this).val();
// Selected 'CO'
console.log(json_filter.selectedState);

我在想eval()可能有效,但是eval()==魔鬼:)有没有更好的方法呢?

5 个答案:

答案 0 :(得分:1)

json_filter.selectedState尝试在对象中使用键"selectedState"查找值,该值不存在。相反,要使用变量或表达式作为键来查找值,请使用括号/下标表示法:

json_filter[selectedState]

答案 1 :(得分:1)

像这样:

console.log(json_filter[selectedState])

答案 2 :(得分:1)

使用括号

json_filter[selectedState]

答案 3 :(得分:1)

首先,您的JSON无效。它应该使用双引号:

json_filter = {"CO": "blah"}

其次,要通过字符串值访问该成员,您可以使用此技巧:

var str = "CO" // or selectedState or whatever
var val = json_filter[str]; // will give you blah

答案 4 :(得分:1)

使用括号表示法。

json_filter[selectedState];