2013-01-08 102 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