Я не очень разбираюсь в JavaScript, но я смог преобразовать массив double (в Java) в массив также в JavaScript, используя json (с Gson).
Но теперь мне нужночтобы преобразовать этот список ниже в некоторый список объектов, чтобы он мог быть динамическим на моей стороне сервера для отправки на сторону клиента.
plotBands: [{ // Light air
from: 0.3,
to: 1.5,
color: 'rgba(68, 170, 213, 0.1)',
label: {
text: 'Light air',
style: {
color: '#606060'
}
}
}, { // Light breeze
from: 1.5,
to: 3.3,
color: 'rgba(0, 0, 0, 0)',
label: {
text: 'Light breeze',
style: {
color: '#606060'
}
}
}, { // Gentle breeze
from: 3.3,
to: 5.5,
color: 'rgba(68, 170, 213, 0.1)',
label: {
text: 'Gentle breeze',
style: {
color: '#606060'
}
}
}, { // Moderate breeze
from: 5.5,
to: 8,
color: 'rgba(0, 0, 0, 0)',
label: {
text: 'Moderate breeze',
style: {
color: '#606060'
}
}
}, { // Fresh breeze
from: 8,
to: 11,
color: 'rgba(68, 170, 213, 0.1)',
label: {
text: 'Fresh breeze',
style: {
color: '#606060'
}
}
}, { // Strong breeze
from: 11,
to: 14,
color: 'rgba(0, 0, 0, 0)',
label: {
text: 'Strong breeze',
style: {
color: '#606060'
}
}
}, { // High wind
from: 14,
to: 15,
color: 'rgba(68, 170, 213, 0.1)',
label: {
text: 'High wind',
style: {
color: '#606060'
}
}
}]
Каким должен быть этот класс в Java?Так что я могу использовать Json (с Gson) для его анализа.
Я думаю, должно быть что-то вроде:
class Info
private float from;
private float to;
private String color;
private Label label;
class Label
private String text;
private Style style;
class Style
private String color;
И в конце у меня есть List<Info> plotBands
и использование .toJson
метод.Я правильно думаю?Или я чего-то здесь упускаю?
ОБНОВЛЕНИЕ На моей странице .xhtml у меня есть:
<h:outputScript>var data = ${reportc.dataAsJson};</h:outputScript>
Я создаю эти классы выше, о которых я упоминал: Тогда яcreate:
List<Info> infos = new ArrayList<Info>();
infos.add(new Info(0, 10, "rgba(68, 170, 213, 0.1)", new Label("Cold", new Style("#606060"))));
data.put("plotBands", infos);
Это генерирует следующий код JavaScript:
{"plotBands":[{
"from":0.0,
"to":10.0,
"color":"rgba(68, 170, 213, 0.1)",
"label":{
"text":"Cold",
"style":{
"color":"#606060"
}
}
}]
Какой это кажется правильным, но как передать это моему коду JavaScript ?Я пытаюсь, но ничего не получается.