如何反序列化列表列表?
How to deserialize a list of lists?
我有一个清单"[[2,3,5,7],[1,4,6]]"
如何使用 Jackson 将其转换为 Java ArrayList
?任何参考 material 或示例都可以。
这是使用 objectmapper 反序列化的泛型包装器,
public static <T> T fromJSON(final TypeReference<T> type,
final String jsonPacket) {
T data = null;
try {
data = new ObjectMapper().readValue(jsonPacket, type);
} catch (Exception e) {
// Handle the problem
}
return data;
示例
var list = "[[2,3,5,7],[1,4,6]]";
var result = JsonUtils.deserialize(new TypeReference<ArrayList<ArrayList<Integer>>>() {}, list);
下面是一些使用 TypeFactory
的示例代码
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.TypeFactory;
import java.util.ArrayList;
class Scratch {
public static void main(String[] args) throws JsonProcessingException {
final TypeFactory typeFactory = TypeFactory.defaultInstance();
final ArrayList<ArrayList<Integer>> data = new ObjectMapper().readValue("[[2,3,5,7],[1,4,6]]",
typeFactory.constructCollectionType(ArrayList.class,
typeFactory.constructCollectionType(ArrayList.class, Integer.class)));
System.out.println(data);
}
}
它构建对象并打印
[[2, 3, 5, 7], [1, 4, 6]]
我有一个清单"[[2,3,5,7],[1,4,6]]"
如何使用 Jackson 将其转换为 Java ArrayList
?任何参考 material 或示例都可以。
这是使用 objectmapper 反序列化的泛型包装器,
public static <T> T fromJSON(final TypeReference<T> type,
final String jsonPacket) {
T data = null;
try {
data = new ObjectMapper().readValue(jsonPacket, type);
} catch (Exception e) {
// Handle the problem
}
return data;
示例
var list = "[[2,3,5,7],[1,4,6]]";
var result = JsonUtils.deserialize(new TypeReference<ArrayList<ArrayList<Integer>>>() {}, list);
下面是一些使用 TypeFactory
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.TypeFactory;
import java.util.ArrayList;
class Scratch {
public static void main(String[] args) throws JsonProcessingException {
final TypeFactory typeFactory = TypeFactory.defaultInstance();
final ArrayList<ArrayList<Integer>> data = new ObjectMapper().readValue("[[2,3,5,7],[1,4,6]]",
typeFactory.constructCollectionType(ArrayList.class,
typeFactory.constructCollectionType(ArrayList.class, Integer.class)));
System.out.println(data);
}
}
它构建对象并打印
[[2, 3, 5, 7], [1, 4, 6]]