创建一个包含数组数组的 json 响应
Create a json response containing array of array
需要回复
{
"data" : [[1234, 55],[1264,45],[1334, 56]]
}
型号
Class Timeseries{
private List<List<Integer>> data;
}
我觉得 List of List 不适合实现所需的 json 响应。但是我无法用 List 替换它,其中 CustomObject 将包含 2 个整数成员变量。因为它将更改响应的格式并将响应作为包含 CustomObject 类型的对象列表而不是列表列表的数据发送..
请提出替代方法
你可以这样试试,
class CustomObject {
private int data1;
private int data2;
// getters & setters
}
然后您可以如下修改您的时间序列,
private List<CustomObject> data;
达到所需输出的最简单方法是
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。
更新:
找出最简单的方法来获得 class
所需的字符串
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]]}
您可以使用大小为 2 的数组列表。
需要回复
{
"data" : [[1234, 55],[1264,45],[1334, 56]]
}
型号
Class Timeseries{
private List<List<Integer>> data;
}
我觉得 List of List 不适合实现所需的 json 响应。但是我无法用 List 替换它,其中 CustomObject 将包含 2 个整数成员变量。因为它将更改响应的格式并将响应作为包含 CustomObject 类型的对象列表而不是列表列表的数据发送..
请提出替代方法
你可以这样试试,
class CustomObject {
private int data1;
private int data2;
// getters & setters
}
然后您可以如下修改您的时间序列,
private List<CustomObject> data;
达到所需输出的最简单方法是
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。
更新:
找出最简单的方法来获得 class
所需的字符串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]]}
您可以使用大小为 2 的数组列表。