通过 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));
希望对您有所帮助!
我正在使用 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));
希望对您有所帮助!