Map オブジェクトを作成するサーブレットを作成しました。
Map<String, Integer> data = new LinkedHashMap<String, Integer>();
データを入力し、Google JSON を使用して JSON 形式で応答を返します。
String json = new Gson().toJson(data);
データを取得してテーブルに反復処理する場合、これらすべてが正常に機能します。ただし、Highcharts プラグイン用に特別な形式で必要です。
series: [{
name: 'Monday',
data: [10]
}, {
name: 'Tuesday',
data: [20]
}, {
name: 'Wednesday',
data: [30]
}, {
name: 'Thursday',
data: [40]
}, {
name: 'Friday',
data: [50]
}, {
name: 'Saturday',
data: [60]
}, {
name: 'Sunday',
data: [70]
}]
これを実現するには、以下に示すようにスクリプトを作成する必要があります。
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
defaultSeriesType: 'column',
rightMargin: 80
},
title: {
text: 'Weekdays'
},
subtitle: {
text: 'Source: somewhere in a calendar'
},
xAxis: {
labels: {
enabled: false
}
},
yAxis: [
{
min: 0,
title: {
text: 'Amount'
}
},
{
linkedTo: 0,
opposite: true
}
],
series: []
};
$.getJSON('WeekdayServlet', function(data) {
var series = [];
$.each(data, function(key, value) {
series.name = key;
series.data = value;
options.series.push(data);
});
// Create the chart
var chart = new Highcharts.Chart(options);
});
とにかく、私はここで何か間違ったことをしています。反復またはシリーズの「初期化」方法のいずれか。
理解を深めるための私の情報源は次のとおりです。
- http://jsfiddle.net/PPAUx/718/
- http://www.highcharts.com/documentation/how-to-use (ポイント 3.1 ケーススタディ: データの前処理)