Самый простой способ получить нужный результат -
class data extends ArrayList<List<Integer>> {
}
и использовать этот код для сериализации с Джексоном JSON
data ts = new data();
ts.addAll(Arrays.asList(Arrays.asList(1234, 55), Arrays.asList(1264, 45), Arrays.asList(1334, 56)));
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(SerializationFeature.WRAP_ROOT_VALUE);
String result = objectMapper.writeValueAsString(ts);
System.out.println(result);
Выходная строка будет такой, как вам нужно {"data":[[1234,55],[1264,45],[1334,56]]}
Но, если серьезно, правильный путь здесь - это реализовать для
class Timeseries {
private List<List<Integer>> data;
}
свой собственный com.fasterxml.jackson.databind.ser.std.StdSerializer<T>
преемник для Timeseries
класса.
ОБНОВЛЕНИЕ:
Просто найдите самый простой способ получить нужную строку для класса
class Timeseries {
public List<List<Integer>> data;
}
Примечание. Поле data
должно быть либо public
, либо иметь получатель.
И тогда код
Timeseries ts = new Timeseries();
ts.data = Arrays.asList(Arrays.asList(1234, 55), Arrays.asList(1264, 45), Arrays.asList(1334, 56));
ObjectMapper objectMapper = new ObjectMapper();
String result = objectMapper.writeValueAsString(ts);
System.out.println(result);
напечатает {"data":[[1234,55],[1264,45],[1334,56]]}