我必须将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?)