2

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

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

谢谢

4

1 回答 1

4

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

于 2013-10-19T23:50:23.197 回答