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

标签 java json jackson deserialization

我想用 Jackson 反序列化 JSON 对象。因为目标是一个接口(interface),所以我需要指定应该使用哪个实现。

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

这可能吗?

最佳答案

使用 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);

关于java - Jackson - 如何为接口(interface)引用的反序列化指定单个实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12688503/

相关文章:

java - 我在 for 和 stream 中有不同的结果,为什么?

java - 用于 Selenium 测试的 Chrome 移动模拟器 - 无法使用所有设备

json - clj-http/获取网址 { :as :json} doesn't work in script but in REPL

javascript - 通过 NodeJS 获取 JSON 数据时,如何通过 ExpressJS 更新我的 EJS 模板?

c# - 使用 JSON 将继承的对象传递给 WCF 服务

java - 将对象转换为 JSON 字符串时发生 JsonMappingException - org.apache.avro.AvroRuntimeException : Not an array:

java - Android图像淡入淡出动画

java - Interactive Brokers Java API 获得所有职位?

java - 如何使用 jackson 将 JSON 数组反序列化为 HashMap?

java - json-simple 与 jackson 在没有 obj 类型时解析 json