2012-11-20 132 views
0

我有这个在我的HTML文件:在Chrome浏览器的调试器返回JSON解析器返回undefined

var jsonReturn = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22%2C%22AAPL%22%2C%22GOOG%22%2C%22MSFT%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json'; 
var stockCount = jsonReturn.query.count; 

错误:Uncaught TypeError: Cannot read property 'count' of undefined

这里是jfiddle:http://jsfiddle.net/P6nMv/

这里的一个片段JSON返回对象:enter image description here

**问题是为什么当我通过**正确解析它时未定义?jsonReturn.query.count

回答

2

您正在尝试访问URL字符串,就好像它是对象一样。你实际上没有在那个URL上检索数据,解析它,并将它分配给一个对象。

+0

确实是假的。我如何获得JSON对象呢? – bouncingHippo

+0

@bouncingHippo,我认为这是一个网页,而不是服务器端的东西。如果是这种情况,那么你有一个跨越原点的问题。您可以使用CORS(有限浏览器功能),JSON-P(古怪,但可以与任何东西协同工作),或者制作服务器端代理,以便使用XHR请求。我不知道雅虎是否支持CORS或JSON-P。找出。如果可用,JSON-P可能是最好的选择。如果你最终做XHR,请查看https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest。 – Brad

+0

@bouncingHippo,看起来像Yahoo!确实支持JSON-P。 http://stackoverflow.com/questions/9237593/using-the-yahoo-weather-api-with-json-and-the-script-tag – Brad