我想使用此代码来解析Yahoo财务CSV文件中的JSON数据。 JSON链接有效,我只是遇到了function (data)
和var data
行的问题。解析表调用function (data)
,但与var data
行冲突。 The original code我过去常常使用function (json)
来解析表格,但这个特定的api似乎只适用于function (data)
。
function drawTable() {
// use jQuery to make an AJAX request for data
$.ajax({
type: "get",
dataType: "jsonp",
url: 'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quoteslist%20where%20symbol%3D%27BRDT%2CAPPL%27&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=',
success: function (data) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Symbol');
data.addColumn('number', 'open');
// parse the JSON into the DataTable
for (var i = 0; i < json.list.resources.length; i++) {
var symbol = json.list.resources[i].resource.fields.symbol;
var open = parseFloat(json.list.resources[i].resource.fields.open);
data.addRow([symbol, open]);
}
var table = new google.visualization.Table(document.querySelector('#table_div'));
table.draw(data);
}
});
}
google.load('visualization', '1', {
packages: ['table'],
callback: drawTable
});
答案 0 :(得分:1)
看起来您正在为success: function(data)
函数传递一个名为data
的JSON数据的变量。然后在成功函数中立即使用DataTable对象实例化一个全新的data
变量,从而覆盖包含返回的JSON数据的先前data
变量。 (行:var data = new google.visualization.DataTable();
)
我会尝试将var data
变量的名称更改为其他内容,例如data_table
,但我实际上还没有尝试进行此更改以查看其是否有效。
希望这有帮助!
答案 1 :(得分:1)
我更改了几个变量名称并删除了&#39; s&#39;来自网址上的https,也将诊断设置为false,因为它抛出了奇怪的符号。
希望这就是你要找的东西
function drawTable() {
// use jQuery to make an AJAX request for data
$.ajax({
type: "get",
dataType: 'json',
url: 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quoteslist%20where%20symbol%3D%27BRDT%2CAPPL%27&format=json&diagnostics=false&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=',
success: function (data) {
var dt = new google.visualization.DataTable();
dt.addColumn('string', 'Symbol');
dt.addColumn('number', 'Open');
// parse the JSON into the DataTable
for (var i = 0; i < data.query.results.quote.length; i++) {
Symbol = data.query.results.quote[i].Symbol;
Open = parseFloat(data.query.results.quote[i].Open);
if (isNaN(Open)) {
Open = 0;
}
dt.addRow([Symbol, Open]);
}
var table = new google.visualization.Table(document.querySelector('#table_div'));
table.draw(dt);
},
error: function (e, a, s) {
alert(s);
}
});
}
google.load('visualization', '1', {
packages: ['table'],
callback: drawTable
});