通过 inferring/embedding 对象类型反序列化 Java 中的 JSON

Deserialize JSON in Java by inferring/embedding object type

我正在使用 Jackson 将 Map<String, Object> 序列化为 JSON。

稍后当我反序列化它时,所有不是原始类型的对象都被转换为 LinkedHashMap 而不是它们最初属于的 class。

有什么方法可以将 JSON 反序列化到映射中,以便嵌套对象的类型正确吗?

使用 constructCollectionType of Typefactory ArrayList 作为集合类,您的 POJO class 作为第二个参数,并使用 ObjectMapper 读取 "List" 值。像这样:

List<T> list;
ObjectMapper om = new ObjectMapper();
TypeFactory t = TypeFactory.defaultInstance();
list = om.readValue(json, t.constructCollectionType(ArrayList.class,POJO_clazz));

希望对您有所帮助!