如何从Yahoo Finance中解析类似JSON的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Yahoo Finance中解析类似JSON的数据?相关的知识,希望对你有一定的参考价值。

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

输出是JSON或JSON,取决于单引号和双引号的重要性。 TOR Browser将数据识别为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>

数据不一定来自雅虎,但它必须是我可以进入Windows小工具并工作的东西,并且尽可能简单,因为我不是那么高级。

答案

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

以上是关于如何从Yahoo Finance中解析类似JSON的数据?的主要内容,如果未能解决你的问题,请参考以下文章

使用 BeautifulSoup 搜索 Yahoo Finance

在 iOS 的 RestKit 中解析嵌套的 JSON

如何使用 Yahoo,Finance stock API 获取股票数据

如何在我的代码中使用自定义 CSV 而不是 Yahoo Finance 数据?

由于跨域功能,无法从我的网站的 yahoo Finance api 获取结果

我希望将 yahoo Finance api 过滤到仅出价在 0 美元到 10 美元之间的股票