Google visualization 谷歌图表-表格有列时没有列
我正在尝试创建一个谷歌图表折线图。我从C#MVC控制器方法返回的Json如下所示:Google visualization 谷歌图表-表格有列时没有列,google-visualization,Google Visualization,我正在尝试创建一个谷歌图表折线图。我从C#MVC控制器方法返回的Json如下所示: function drawChart() { var jsonData = $.ajax({ url: "/Misc/GetWeeklySalesData/", dataType: "json", async: false }).responseText; // Create our data table out of JSON data
function drawChart() {
var jsonData = $.ajax({
url: "/Misc/GetWeeklySalesData/",
dataType: "json",
async: false
}).responseText;
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable(jsonData);
alert(data);
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.LineChart(document.getElementById('chartDiv'));
chart.draw(data, { width: 400, height: 240 });
我的JS代码如下所示:
function drawChart() {
var jsonData = $.ajax({
url: "/Misc/GetWeeklySalesData/",
dataType: "json",
async: false
}).responseText;
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable(jsonData);
alert(data);
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.LineChart(document.getElementById('chartDiv'));
chart.draw(data, { width: 400, height: 240 });
我收到的消息是“Table has no columns”(表中没有列),但显然是这样的。要直接从JSON创建数据表,它必须采用特定的格式: 否则,您可以创建空白数据表并手动加载行:
$.ajax({
url: "/Misc/GetWeeklySalesData/",
dataType: "json",
}).done(function (jsonData) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Week');
data.addColumn('number', 'Retail');
data.addColumn('number', 'Wholesale');
jsonData.forEach(function (row) {
data.addRow([
row.Week,
row.Retail,
row.Wholesale
]);
});
var chart = new google.visualization.LineChart(document.getElementById('chartDiv'));
chart.draw(data, {
width: 400,
height: 240
});
}).fail(function (jq, text, err) {
console.log(text + ' - ' + err);
});
注意:强烈建议不要使用-->
async:false
。改用done
回调 你能解释一下不使用async:false的建议吗?这是谷歌自己使用它的代码。