【问题标题】:JSON parser returns undefinedJSON 解析器返回未定义
【发布时间】:2012-11-20 20:29:06
【问题描述】:

我的 html 文件中有这个:

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;

Chrome 调试器返回的错误:Uncaught TypeError: Cannot read property 'count' of undefined

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

这是 JSON 返回对象的 sn-p:

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

【问题讨论】:

    标签: javascript html json


    【解决方案1】:

    您正在尝试访问 URL 字符串,就好像它是一个对象一样。您实际上没有在任何地方检索该 URL 处的数据、对其进行解析并将其分配给一个对象。

    【讨论】:

    • 确实失礼了。那我如何获取 JSON 对象呢?
    • @bouncingHippo,我认为这是一个网页,而不是服务器端的东西。如果是这种情况,那么您有一个跨域问题。您可以使用 CORS(有限的浏览器功能)、JSON-P(古怪,但可以使用任何东西),或制作服务器端代理,以便您可以使用 XHR 请求。我不知道是否雅虎!支持 CORS 或 JSON-P。查出。 JSON-P 可能是要走的路,如果它可用的话。如果你最终选择了 XHR,请查看 developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/…
    • @bouncingHippo,它看起来像 Yahoo!确实支持 JSON-P。 stackoverflow.com/questions/9237593/…
    • 哇,我今天学到了新东西!使用 CORS 是否有缺点,因为我将主要在 Chrome 中使用此网页
    • @bouncingHippo,缺点是浏览器兼容性有限,尤其是与 Internet Explorer 的兼容性。如果这对你来说不是问题,那就去吧。另外,我刚刚检查了雅虎!支持 CORS,具有以下标头:Access-Control-Allow-Origin:*
    猜你喜欢
    • 1970-01-01
    • 2019-05-24
    • 2021-12-14
    • 1970-01-01
    • 2021-10-01
    • 2017-03-26
    • 2021-08-14
    • 1970-01-01
    • 2014-08-14
    相关资源
    最近更新 更多