达到所需输出的最简单方法是
class data extends ArrayList<List<Integer>> {
}
并使用此代码与 Jackson 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 或有一个 getter。
然后编码
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]]}