如何在jackson中反序列化抽象类

时间:2013-10-19 04:08:13

标签: java json jackson

我正在尝试使用jackson将JSON对象反序列化为Java对象。 json是由另一位开发人员使用jackson库本身创建的,并提供给我。 Object图有一个类型为guava的ImmutableMap变量,它是一个抽象类。当我尝试deSerialize时,Jackson会抛出以下异常。我不是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]

谢谢

1 个答案:

答案 0 :(得分:4)

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