如何反序列化列表列表?

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]]