当前位置: 首页 > 面试题库 >

无法构造-杰克逊的实例

许博易
2023-03-14
问题内容

我正在使用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;

有人可以帮我吗?


问题答案:

您不能实例化一个抽象类,杰克逊也不能。您应该为Jackson提供有关如何使用具体类型实例化MyAbstractClass的信息。



 类似资料:
  • 问题内容: 我正在使用Jackson示例代码对POJO进行反序列化: 这行抛出一个NoSuchMethodError: 我不明白 问题答案: 我猜您的Jackson JAR不同步。本类是JAR,和类是在。 确保它们都是相同的版本。

  • 我想使用Spring的RestTemplate plus Jackson来使用Web服务。我已经学习了几本教程,并且已经达到了创建DAO的目的。这是我获取所有域对象的方法: 但我的Web服务不会立即返回Station对象数组,而是以这种方式返回一个更具语义的表达式: 所以我的问题是,我不知道如何“告诉”RestTemplate在“stations”指示符之后立即解析对象列表,而不创建临时对象,这似

  • 问题内容: 我希望Jackson用以下构造函数反序列化一个类: 反序列化第一个参数很容易。问题在于地址定义为: 并构造如下: 有没有办法从Jackson那里获取键值对,以便自己构造地址?另外,有没有办法让Jackson来使用Builder类本身? 问题答案: 只要您使用的是Jackson 2+,现在就已经内置了对此的支持。 首先,您需要将此注释添加到您的类中: 然后,您需要将此注释添加到您的类中:

  • 问题内容: 我使用杰克逊将JSON转换为Object类。 JSON: 对象类别: 码: 我的代码抛出这样的异常: 而且我不想在Test类上添加一个道具,我只是想让jackson转换Test中也存在的存在值。 问题答案: Jackson提供了几种不同的机制来配置“额外” JSON元素的处理。以下是将to 配置为not 的示例。 有关其他方法,请参见http://wiki.fasterxml.com/

  • 问题内容: 我想知道为什么没有确定的合作方式。我只想解析字符串: 但是我真的很困惑应该导入什么。根据此链接,我尝试导入。但是我得到这个编译错误: 然后我尝试导入和。因此,没有编译错误,但是我得到了此运行时异常(在mapper定义行中): 请指导我,我应该导入什么才能使用。谢谢 问题答案: 使用这些依赖项 jackson-databind jackson-annotations jackson- c

  • 问题内容: 在Jersey上使用Jackson 处理器时,何时以及为何需要在两者之间使用注释? 杰克逊(Jackson)还提供了自己的服务提供商以直接使用。这种方法缺少什么?还是为什么我比其他人更喜欢 ps:我也用弹簧 问题答案: 为了生成JSON,通常只需指定即可。但是,这将默认采用JAXB路由。 使用Object-> JAXB-> JSON,您必须注释要映射的类。这可以很好地工作,但是一旦您要