默认情况下,杰塞逊在反序列化任何java.util.LinkedHashMap
类型时会创建Map
个实例。如何定制以使Jackson创建不同的Map实现,但仍继续使用其默认的Map反序列化器?
答案 0 :(得分:4)
有多种方法可以做到这一点,但最简单的方法可能只是指定应该使用哪个类作为抽象类的具体实现。如下所示:
SimpleModule myModule = new SimpleModule(...);
myModule.addAbstractTypeMapping(Map.class, SomeOtherMap.class);
objectMapper.registerModule(myModule);
这适用于默认常见抽象类型(List
,Collection
,Map
)以及指定自定义接口和抽象类的具体实现。