Я создал сервлет, который создает объект карты:
Map<String, Integer> data = new LinkedHashMap<String, Integer>();
заполняет данные и возвращает ответ в формате JSON, используя Google 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);
});
Во всяком случае, я делаю что-то здесь не так. Либо в итерации, либо как я "инициализирую" series .
Вот мои источники для лучшего понимания: