Javascript Google arrayToDataTable-行0的行类型无效
我(再次)陷入困境,似乎找不到这样的例子。我尝试了多种提取和格式化数据的方法,但都无济于事 我有以下通过服务器脚本以JSON格式提供的数据:Javascript Google arrayToDataTable-行0的行类型无效,javascript,arrays,google-visualization,Javascript,Arrays,Google Visualization,我(再次)陷入困境,似乎找不到这样的例子。我尝试了多种提取和格式化数据的方法,但都无济于事 我有以下通过服务器脚本以JSON格式提供的数据: [{ "franchisee_name":"John Smith", "dish_menu":"Breakfast", "dish_title":"Bagels", "hq_price":"9.00", "store_price":"18.00", "valid_from_date":"2014-04-13",
[{
"franchisee_name":"John Smith",
"dish_menu":"Breakfast",
"dish_title":"Bagels",
"hq_price":"9.00",
"store_price":"18.00",
"valid_from_date":"2014-04-13",
"valid_to_date":"9999-12-31"
},
{
"franchisee_name":"Sam Jones",
"dish_menu":"Breakfast",
"dish_title":"Muesli",
"hq_price":"8.00",
"store_price":"13.00",
"valid_from_date":"2014-04-13",
"valid_to_date":"9999-12-31"
}, ......
我想把它放在一个谷歌可视化表使用
var data = google.visualization.arrayToDataTable(jsonData);
我理解数据需要如下所示:
['Franchisee', 'Menu Type','Dish', 'HQ Price', 'Store Price', 'Valid From', 'Valid To'], <-- header row
['John Smith', 'Breakfast', 'Bagels', '9.00', '18.00', '2014-04-13', '9999-12-31'], <-- data row
....
但是我得到了第0行的错误
无效行类型
,并且还没有找到如何解决这个问题的示例。谢谢你的帮助 通过在回调函数中声明var data
,您就成了javascript及其伴随作用域微妙特性的牺牲品1。基本上,您的声明会出现在函数的顶部并屏蔽您的命名参数:数据
不等于[…]
,但对于未定义的
,请参阅此提琴以说明我的观点
例如,将变量重命名为gdata
(并使用parseInt()
而不是int
()和[]。按而不是[]。追加
):
还有一个演示
1参见或举例说明
jQuery.getJSON( url, function( data ) {
var header = ['Franchisee', 'Menu Type','Dish', 'HQ Price', 'Store Price', 'Valid From', 'Valid To'];
var row = "";
var rows = new Array();
jQuery.each( data, function( i, d ) {
row = [ d.franchisee_name, d.dish_menu, d.dish_title, int(d.hq_price), int(d.store_price), d.valid_from_date.toString(), d.valid_to_date.toString() ];
rows.append(row);
});
var jsonData = [header].concat(rows);
var data = google.visualization.arrayToDataTable(jsonData);
// Set chart options
var options = {
showRowNumber: 'false'
};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.Table(document.getElementById('hq_report_div'));
chart.draw(data, options);
});
var gdata = google.visualization.arrayToDataTable(jsonData);
// ...
chart.draw(gdata, options);