我有一个实现Map< String,Object>的类接口:
public class TypedObject implements Map<String, Object>, Serializable {...}
TypedObject的实例可能包含另一个TypedObject实例作为值,依此类推.
默认情况下,Jackson的ObjectMapper将任何类似地图的记录反序列化为LinkedHashMap.我希望它将任何子映射反序列化为TypedObject.
我知道我可以实现自己的反序列化器,但在我看来,有一种更简单的方法.
那么如何通知ObjectMapper我想要什么呢?
例:
{"child":{"name":"son","child":{"name":"grandson"}}}
应该反序列化为TypedObject,它包含另一个TypedObject值,该值还包含TypedObject值.
最佳答案 一种方法是指定从抽象类型Map到TypedObject的映射.这可以通过构造SimpleModule,调用其“addAbstractTypeMapping(…)”方法,使用ObjectMapper注册模块来完成.
为此,TypedObject必须具有零参数构造函数.