このように収集された情報を表示しようとしています(コントローラー):
public JsonResult GetDataAssets()
{
List<string[]> data = new List<string[]>();
data.Add(new[] { "Day", "Kasse", "Bonds", "Stocks", "Futures", "Options" });
data.Add(new[] { "01.03.", "200", "500", "100", "0", "10" });
data.Add(new[] { "01.03.", "300", "450", "150", "50", "30" });
data.Add(new[] { "01.03.", "350", "200", "180", "80", "40" });
return Json(data);
}
..Google チャートで、次のように (表示):
function drawChart() {
var data = google.visualization.arrayToDataTable($.post('GetDataAssets', {}).responseText);
var options = {
title: 'Performance'
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
};
これにより、データが配列ではないことを示す js 例外が発生します。おそらく、私が試したようにデータを渡すことはできません.. ajax呼び出しによって返されたデータを有効な形式にするためにどのように作業する必要がありますか?
答え:
これにより、上記のコントローラーによって既にjsony化された状態で渡されたデータのフェッチと非常に柔軟な変換が実行されました。素晴らしいリンク:このブログ投稿
var tdata = new google.visualization.DataTable();
var rows = data.length;
var cols = data[0].length;
tdata.addColumn('string', data[0][0]);
for (var i = 1; i < cols; i++) {
tdata.addColumn('number', data[0][i]);
}
tdata.addRows(data.length);
for (var i = 0; i < data.length; i++) {
tdata.setCell(i, 0, data[i][0]);
for (var j = 1; j < cols; j++) {
var value = parseInt(data[i][j]);
tdata.setCell(i, j, value);
}
}