0

我使用 jQuery 和 highcharts.js 在我的网页上构建了一个折线图,显示用户请求的任何公司的历史财务数据。我一直在玩 YQL 并使用此语句以 JSON 格式检索一些引号:

select * from yahoo.finance.historicaldata where symbol = "AAPL" and startDate = "2013-02-01" and endDate = "2013-02-25"

下面是带有我的查询的 YQL 控制台的链接:

http://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select%20 *%20from%20yahoo.finance.historicaldata%20where%20symbol% 20%3D%20%22AAPL%22%20and%20startDate%20%3D%20%222013-02-01%22%20and%20endDate%20%3D%20%222013-02-25%22

它返回一堆关于执行开始时间和执行结束时间的信息,然后最后它给了我下面的引号:

"results": {
"quote": [
{
 "date": "2013-02-25",
 "Date": "2013-02-25",
 "Open": "453.85",
 "High": "455.12",
 "Low": "442.57",
 "Close": "442.80",
 "Volume": "13306400",
 "Adj_Close": "442.80"
},

我无法从结果中提取收盘价信息,我尝试了以下代码,但遇到了问题。

    $.getJSON('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22AAPL%22%20and%20startDate%20%3D%20%222013-02-01%22%20and%20endDate%20%3D%20%222013-02-25%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=cbfunc', function(data){

    console.log(data);

    var close = data.query.results.quote.close;
    document.write(close);

})

有人可以告诉我我哪里出错了,因为我是 jquery、yql 和 json 的新手。

谢谢

4

1 回答 1

1

在我看来,返回的报价对象是一个数组?你有没有尝试过

var close = data.query.results.quote[0].Close;
document.write(close);

如果没有,请尝试在该行设置断点并检查数据对象(例如在 firebug 中)。

于 2013-03-01T09:14:57.503 回答