Java to JSON polymorphic抽象类实现的接口序列化

时间:2017-05-22 20:29:52

标签: java json serialization jackson

我必须将Java对象序列化为JSON,但其中一个类属性有一个扩展抽象类的类型,它实现了一个接口。我试图使用杰克逊以便专门保存属性的子类型,但它引发了一个例外,我没有说明原因。我能做什么? 是否存在另一种清洁/更好的方法来执行此操作?

这是我的抽象类注释:

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,include =JsonTypeInfo.As.PROPERTY,property = "type")
@JsonSubTypes({
    @Type(value = SubTypeWhichExtendsAbstract.class, name=BonusToTerritoryTower") })
public abstract class MyAbstrClass implements MyInterface{

界面注释:

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({@Type(value = ValueBonus.class, name = "ValueBonus") })
public interface MyInterface {
Eclipse给出的

错误

Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class ...]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?)

0 个答案:

没有答案