2014-07-26 234 views
0

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

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

var x = 'phrases'; 

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

当我运行此代码时,显然不工作,因为它解释“x”而不是变量“x”的内容。

在引擎收录情况下的完整代码:http://pastebin.com/bMQJ9EDf

有没有简单的解决方案呢?

+0

使用:骑士[x] – conceptdeluxe

+1

**这与JSON无关** –

回答

2

knights.x寻找名为x的房产。你想要knights[x],这相当于knights['phrases'] == knights.phrases

的完整代码(固定几个错字在你的例子):

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

var x = 'phrases'; 

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

尝试这种使用具有字符串变量来访问值

kinghts[x] 

基本上这是欺骗

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

knights.x会得到一个名为x关键,所以它会回到这里undefined

2

knights.x相同knights['x'] - 下键x取回财产。它不访问变量x并替换值。相反,你想knights[x]这相当于knights['phrases']