我正在使用 Jackson 并且遇到问题,当我尝试反序列化对象时出现以下错误:
com.fasterxml.jackson.databind.JsonMappingException:
Can not construct instance of net.MyAbstractClass,
problem: abstract types either need to be mapped to concrete types,
have custom deserializer, or be instantiated with additional type information
我在属性中遇到问题:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@id")
@JsonSubTypes({ @JsonSubTypes.Type(value = MyAbstractClass.class, name = "MyAbstractClass") })
@ManyToOne
private MyAbstractClass object;
谁能帮帮我?
原文由 Danilo M. 发布,翻译遵循 CC BY-SA 4.0 许可协议
你不能实例化一个抽象类,Jackson 也不能。您应该向 Jackson 提供有关如何使用具体类型实例化 MyAbstractClass 的信息。
在 stackoverflow 上查看此答案: Jackson JSON library: how to instantiate a class that contains abstract fields
也许还会看到 Jackson Polymorphic Deserialization