一尘不染

Jackson-如何为接口引用的反序列化指定单个实现?

json

我想用杰克逊反序列化JSON对象。因为目标是接口,所以我需要指定应使用哪种实现。

该信息可以使用@ JsonTypeInfo-Annotation存储在JSON对象中。但是我想在源代码中指定实现,因为它总是一样的。

这可能吗?


阅读 310

收藏
2020-07-27

共1个答案

一尘不染

使用一个SimpleAbstractTypeResolver

ObjectMapper mapper = new ObjectMapper();

SimpleModule module = new SimpleModule("CustomModel", Version.unknownVersion());

SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver();
resolver.addMapping(Interface.class, Implementation.class);

module.setAbstractTypes(resolver);

mapper.registerModule(module);
2020-07-27