Java 如何使Jackson在反序列化期间将所有类似映射的节点强制转换到我的自定义类?

Java 如何使Jackson在反序列化期间将所有类似映射的节点强制转换到我的自定义类?,java,jackson,Java,Jackson,我有一个实现Map接口的类: public class TypedObject implements Map<String, Object>, Serializable {...} 应反序列化为TypedObject,其中包含另一个TypedObject值,该值还包含TypedObject值。一种方法是指定从抽象类型Map到TypedObject的映射。这可以通过构造SimpleModule,调用其“addAbstractTypeMapping(…)”方法,向ObjectMappe

我有一个实现
Map
接口的类:

public class TypedObject implements Map<String, Object>, Serializable {...}

应反序列化为
TypedObject
,其中包含另一个
TypedObject
值,该值还包含
TypedObject
值。

一种方法是指定从抽象类型
Map
TypedObject
的映射。这可以通过构造
SimpleModule
,调用其“addAbstractTypeMapping(…)”方法,向
ObjectMapper
注册模块来实现


要使此方法起作用,
TypedObject
必须有一个可用的零参数构造函数。

您的方法对我不起作用,我甚至在这里添加了一些注释。突然我意识到我使用的是旧版本的jackson libs。在更新到最新版本后,它可以工作。很抱歉我不相信。好的,很好,它与最新版本一起工作。很可能存在一些漏洞,一些反序列化程序跳过了对实际实现的检查。@StaxMan我已经尝试过这样做,但它只适用于最高级别的映射,所有子映射仍然有效LinkedHashMaps@blumonk如果Jackson 2.6出现这种情况,请为
Jackson数据绑定
提交一个问题。
Map
Object
的所有实例都应反序列化为适当的映射覆盖。
{"child":{"name":"son","child":{"name":"grandson"}}}