假設我有一個從不同域返回的JSON對象,如下所示(這最初包含相當大的數據量,因此省略了不相關部分,同時保持其結構完整):使用jQuery .ajax函數從嵌套JSON對象中檢索值
{
"query": {
"count": 1,
"created": "2013-10-08T21:06:49Z",
"lang": "en-US",
"results": {
"quote": {
"symbol": "GOOG",
"Ask": "854.63",
"AverageDailyVolume": "1837530",
"PreviousClose": "865.74"
}
}
}
}
雖然我覺得相當舒服JSON的工作,我纔開始學習jQuery的阿賈克斯功能的螺母和螺栓用JSON交互。我寫的代碼(見下文)非常基本的位只是爲了確保我可以檢索JSON對象,並從中提取一個或多個值:
$.ajax({
type: "get",
cache: false,
dataType: "jsonp",
url: "http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quotes where symbol in ('" + source + "') &format=json&diagnostics=true&env=http://Fdatatables.org/alltables.env&callback=?",
success: function(data) {
console.log(data.query.results.quote.symbol); // expected output is "GOOG"
}
});
當我運行上面在Firefox代碼,我得到TypeError: data.query is undefined
錯誤在瀏覽器安慰。我注意到已經發布了幾個問題,與我在這裏提出的問題類似,但沒有找到足夠解決此問題的任何問題 - 至少從我的理解來看。
任何意見/技巧將不勝感激。
你有沒有嘗試'console.log(data,typeof data);'確保你確實得到了迴應? –
「沒有爲Table yahoo.finance.quotes發現的定義」錯誤,我看到了。 – PSL
使用雅虎API控制檯首先測試您的YQL,同樣的錯誤直接從yahoo API控制檯返回,用於'select * from yahho.finance.quotes' http://developer.yahoo.com/yql/console/#h=選擇+ * +從+ yahoo.finance.quotes –