使用String获取JSON属性

时间:2014-07-26 04:02:47

标签: javascript json

我想在JavaScript中使用字符串作为JSON属性。

var knights = {
         'phrases': 'Ni!'
};

var x = 'phrases';

console.log(knights.x);         // Doesn't log "Ni!"

当我运行此代码时,它显然不起作用,因为它解释了" x"而不是变量的内容" x"。

关于pastebin的上下文中的完整代码:http://pastebin.com/bMQJ9EDf

有一个简单的解决方案吗?

3 个答案:

答案 0 :(得分:2)

尝试使用具有字符串值的变量

进行访问
kinghts[x]

基本上这是技巧

kinghts[x]==knighted["phrases"]==knighted.phrases.

knights.x会获得一个名为x的密钥,因此它会在此处返回undefined

答案 1 :(得分:2)

knights.x查找名为x的属性。您需要knights[x],相当于knights['phrases'] == knights.phrases

完整代码(修复示例中的几个拼写错误):

var knights = {
         "phrases": "Ni!"
};

var x = 'phrases';

console.log(knights[x]); // logs Ni!

答案 2 :(得分:2)

knights.xknights['x']相同 - 检索密钥x下的属性。它没有访问变量x并在值中替换。相反,您希望knights[x]等同于knights['phrases']