Я предполагаю, что вы используете очень старую версию PF Extensions? Причина, по которой я говорю, еще в 2016 году было исправлено использование List<Object>
вместо List<String>
и было выпущено в PrimeFaces Extensions 6.1 или выше.
Последнюю версию кода можно посмотреть здесь: https://github.com/primefaces-extensions/core/blob/master/src/main/java/org/primefaces/extensions/component/gchart/model/GChartModelBuilder.java
Исправлено в 2016 году: https://github.com/primefaces-extensions/core/commit/6c473bbc50920bfdaedca02b918c29a5ead8d4d0#diff-f3a907dcc2d19626bf60db5bbebba6be
Обновление:
Если вы хотите добавить данные, используя пары ключ-значение, это должно быть возможно. Поскольку GChart использует Google GSON для превращения Java-кода в JSON для клиента, я подумаю, если вы поместите значение массива String в поле, оно будет десериализовано так, как вы ожидали.
Создать POJO, представляющий столбец:
public class GChartModelColumn {
// column label
private final String label;
// column type: number, date, datetime
private final String type;
public GChartModelColumn(String label, String type) {
super();
this.label = label;
this.type = type;
}
public String getLabel() {
return label;
}
public String getType() {
return type;
}
}
Затем добавьте столбцы, используя модель выше, как ...
lineChartModelBuilder.addColumns(
new GChartModelColumn("Time", "datetime"),
new GChartModelColumn("Value 1", "number"),
new GChartModelColumn("Value 2", "number"));
Затем в коде JS он преобразует ваш объект данных в Google DataTable .
var dataTable = google.visualization.arrayToDataTable(this.data);