假设我有一个从不同域返回的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 –