2013-01-08 170 views
0

这是我的问题。JSON查找返回undefined

console.log(data.selectedData.value); 
>> {'id':'61', 'force':'true'} 

但是当我尝试做一个查找...

console.log(data.selectedData.value.force); 
>> undefined 

console.log(data.selectedData.value['force']); 
>> undefined 

这是怎么回事吗?上面的查找是非常标准的(请参阅:http://www.w3schools.com/json/json_syntax.asp

+1

我要猜你在你的程序的一些异步代码?在设置之前,您可能正在读取'data.selectedData.value'。尝试在定义'data.selectedData.value'后查看'force' *下一行*,看看它是否工作。 – apsillers

+2

请做一个'console.log(typeof data.selectedData.value)'并发布结果 – Bergi

+0

由于其他答案的状态,你需要解析数据。你在使用任何类型的框架? (Dojo,jQuery等?) – sma

回答

4

JSON是文本字符串。如果您要访问的JavaScript对象(由JSON字符串表示)的特性,JSON应分析:

var data = JSON.parse(data.selectedData.value); 
console.log(data.force); 

参考:

0

确定data.selectedData.value是一个JSON对象,而不是一个字符串?

,如果它是一个字符串,你总是可以做JSON.parse()来

+0

根据定义JSON不是一个对象(如果只是你不是指[使用JSON工作的对象])(https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON))。 – VisioN

+0

typeof JSON ==“object” 不确定你的意思在那里......但对我来说它是。也许理论上我错了,不确定 – asheinfeld

+0

你混淆了[* JavaScript Object Notation *](https://developer.mozilla.org/en-US/docs/JSON)和[*用于使用JSON的内置对象*](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON)。 – VisioN