【问题标题】:How to deserialize abstract classes in jackson如何反序列化jackson中的抽象类
【发布时间】:2013-10-19 04:08:13
【问题描述】:

我正在尝试使用 jackson 将 JSON 对象反序列化为 Java 对象。 json 是由另一个开发人员使用 jackson 库本身创建的,并提供给我。对象图有一个类型为番石榴的 ImmutableMap 的变量,它是一个抽象类。因此当我尝试反序列化时,杰克逊会抛出以下异常。我不是 myJava 类的所有者,因此无法对其进行任何更改,例如更改类型或通过编写自定义反序列化程序添加注释。

org.codehaus.jackson.map.JsonMappingException: 找不到 非具体 Map 类型的反序列化器 [map type;班级 com.google.common.collect.ImmutableMap, [简单类型,类 com.walmart.services.common.enums.ShipMethod] -> [简单类型,类 com.walmart.services.shipprice.api.DetailedShipPrice]]

谢谢

【问题讨论】:

    标签: java json jackson


    【解决方案1】:

    在处理 Guava 类型时,您将需要使用 Guava 数据类型模块 (https://github.com/FasterXML/jackson-datatype-guava)。这不仅仅是抽象类型的问题;但是 Guava 也使用 builder-style 而不是构造函数。

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 2018-03-06
      • 2019-05-22
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 2011-04-07
      • 2019-06-10
      相关资源
      最近更新 更多