如何将 Json 转换为 google 可视化数据表
How To Convert Json to google visualization datatable
我有一个方法 ajax 调用服务器以获得 json 结果
var jsonData = $.ajax({
url: '/Reports/GetJsonData',
type: 'GET',
dataType: 'json',
error: function (err) {
alert("Error : "+err.statusText);
}
}).responseText;
然后我可以得到以下 Json 结果到 "jsonData" 变量。
[
{"LineName":"L1","Car":23,"Bus":0,"Motorcycle":0,"Person":0,"Others":0}
,{"LineName":"L2","Car":0,"Bus":0,"Motorcycle":6,"Person":0,"Others":0}
,{"LineName":"L3","Car":10,"Bus":20,"Motorcycle":36,"Person":13,"Others":0}
]
我想把这个结果转换成下面的格式
[['LineName', 'Car', 'Bus','Motorcycle', 'Person','Others'],
['L1', 23, 0, 0,0,0],
['L2', 0, 0, 6,0,0],
['L3', 10, 20, 36,13,0]]
然后我想在google可视化API中使用它来绘制图表
var data = new google.visualization.arrayToDataTable(jsonData);
我只需要知道是否有任何简单的方法来转换可以传递给 google.visualization
的数据
请参阅以下工作片段...
google.charts.load('current', {
callback: drawChart,
packages:['table']
});
function drawChart() {
var jsonData = [
{"LineName":"L1","Car":23,"Bus":0,"Motorcycle":0,"Person":0,"Others":0},
{"LineName":"L2","Car":0,"Bus":0,"Motorcycle":6,"Person":0,"Others":0},
{"LineName":"L3","Car":10,"Bus":20,"Motorcycle":36,"Person":13,"Others":0}
];
var gglData = [];
if (jsonData.length > 0) {
// load column headings
var colHead = [];
Object.keys(jsonData[0]).forEach(function (key) {
colHead.push(key);
});
gglData.push(colHead);
// load data rows
jsonData.forEach(function (row) {
var gglRow = [];
Object.keys(row).forEach(function (key) {
gglRow.push(row[key]);
});
gglData.push(gglRow);
});
}
// arrayToDataTable is a static method, "new" keyword not needed
var data = google.visualization.arrayToDataTable(gglData);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="table_div"></div>
我有一个方法 ajax 调用服务器以获得 json 结果
var jsonData = $.ajax({
url: '/Reports/GetJsonData',
type: 'GET',
dataType: 'json',
error: function (err) {
alert("Error : "+err.statusText);
}
}).responseText;
然后我可以得到以下 Json 结果到 "jsonData" 变量。
[
{"LineName":"L1","Car":23,"Bus":0,"Motorcycle":0,"Person":0,"Others":0}
,{"LineName":"L2","Car":0,"Bus":0,"Motorcycle":6,"Person":0,"Others":0}
,{"LineName":"L3","Car":10,"Bus":20,"Motorcycle":36,"Person":13,"Others":0}
]
我想把这个结果转换成下面的格式
[['LineName', 'Car', 'Bus','Motorcycle', 'Person','Others'],
['L1', 23, 0, 0,0,0],
['L2', 0, 0, 6,0,0],
['L3', 10, 20, 36,13,0]]
然后我想在google可视化API中使用它来绘制图表
var data = new google.visualization.arrayToDataTable(jsonData);
我只需要知道是否有任何简单的方法来转换可以传递给 google.visualization
的数据请参阅以下工作片段...
google.charts.load('current', {
callback: drawChart,
packages:['table']
});
function drawChart() {
var jsonData = [
{"LineName":"L1","Car":23,"Bus":0,"Motorcycle":0,"Person":0,"Others":0},
{"LineName":"L2","Car":0,"Bus":0,"Motorcycle":6,"Person":0,"Others":0},
{"LineName":"L3","Car":10,"Bus":20,"Motorcycle":36,"Person":13,"Others":0}
];
var gglData = [];
if (jsonData.length > 0) {
// load column headings
var colHead = [];
Object.keys(jsonData[0]).forEach(function (key) {
colHead.push(key);
});
gglData.push(colHead);
// load data rows
jsonData.forEach(function (row) {
var gglRow = [];
Object.keys(row).forEach(function (key) {
gglRow.push(row[key]);
});
gglData.push(gglRow);
});
}
// arrayToDataTable is a static method, "new" keyword not needed
var data = google.visualization.arrayToDataTable(gglData);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="table_div"></div>