首页 > 解决方案 > Jackson 继承反序列化

问题描述

我有一个具有以下结构的类

Class A { private String type; private T entity; }

而我的JSON结构是这样的

{"type":"Relation1","entity":"{..}"} --> entity should be Relation1.class
{"type":"Relation2","entity":"{..}"}  --> entity should be Relation2.class

如何使用 Jackson deserilizaton 达到预期的效果?

标签: javainheritancejacksonpolymorphismjackson-databind

解决方案


如果您在模型中使用继承,则无法获得如图所示的干净 json,因为 Jackson 无法反序列化 json。如果你想使用 Jackson,你必须配置 ObjectMapper:

ObjectMapper mapper = new ObjectMapper();
mapper.enableDefaultTyping();

然后您将获得一个包含反序列化过程所需的 T 类名称的 Json。

在这里您可以找到完整的指南:指南


推荐阅读