我正在尝试使用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>
数据不必来自雅虎,但是它必须是我可以进入Windows Gadget并可以工作的东西,并且要尽可能简单,因为我是不那么先进。
答案 0 :(得分:0)
似乎我只是不太了解JSON对象/数组结构。看起来Yahoo Finance返回的字符串是{object:{array [object:value]}}。我使用console.log来浏览IE11中的JSON结构,并最终到达那里。