【问题标题】:How do I Parse JSON-like Data from Yahoo Finance?如何解析来自 Yahoo Finance 的类似 JSON 的数据?
【发布时间】:2018-09-08 22:36:16
【问题描述】:

我正在尝试使用 HTML 和 JavaScript 从 Yahoo 获取一些股票报价,并将它们显示在我自己的小工具中。我正在使用示例符号查询以下 URL: https://query1.finance.yahoo.com/v7/finance/quote?symbols=aaba

输出是 JSON 或类似 JSON,具体取决于单引号和双引号的重要性。 TOR 浏览器将数据识别为 JSON 格式。

我的代码可以拉取数据并接收它,但JSON.parse 在输出上不起作用。这是我正在编写并使用 IE11 加载的代码示例,用于在转到小工具之前对其进行测试。

<!DOCTYPE html>
<html>
  <body>
    <p id="symbol"></p>
    <p id="shortName"></p>
    <p id="bid"></p>
    <p id="debug"></p>
    <script>
      var objJSON;
      var objXHR=new XMLHttpRequest();
      objXHR.open("GET", "https://query1.finance.yahoo.com/v7/finance/quote?symbols=aaba");
      objXHR.onreadystatechange=function() {
        console.log(objXHR.status);
        if (objXHR.readyState == 4 && objXHR.status == 200) {
          console.log("Ready==4");
          console.log(objXHR.responseText); //log the response
          objJSON = JSON.parse(objXHR.responseText);
          //objJSON = JSON.parse('{ "symbol":"aaba", "shortName":"Altaba", "bid":0}'); // Test data in properly-formatted JSON text
          console.log("length " + Object.keys(objJSON).length); //indicator whether it parsed
          document.getElementById("symbol").innerHTML = "symbol " + objJSON.symbol;
          document.getElementById("shortName").innerHTML = "shortName " + objJSON.shortName;
          document.getElementById("bid").innerHTML = "bid " + objJSON.bid;
        }
      };
      objXHR.send(null);
    </script>
  </body>
</html>

数据必须来自 Yahoo,但它必须是我可以进入 Windows Gadget 并工作的东西,并且尽可能简单,因为我是没那么先进。

【问题讨论】:

    标签: json yahoo-finance windows-desktop-gadgets


    【解决方案1】:

    看来我只是不太了解 JSON 对象/数组结构。看起来 Yahoo Finance 返回的字符串是 {object:{array[object:value]}}。我在 IE11 中使用 console.log 遍历 JSON 结构,最终到达那里。

    【讨论】:

      猜你喜欢
      • 2020-11-14
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多