我制作了一个 servlet,它创建了一个 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 点案例研究:数据预处理)