2

jackson を使用して、JSON オブジェクトを Java オブジェクトにデシリアライズしようとしています。json は、別の開発者によって jackson ライブラリ自体を使用して作成され、私に提供されています。オブジェクト グラフには、抽象クラスである Type guava の ImmutableMap の変数があります。したがって、デシリアライズしようとすると、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]]

ありがとう

4

1 に答える 1

4

Guava 型を扱う場合は、Guava データ型モジュール ( https://github.com/FasterXML/jackson-datatype-guava ) を使用する必要があります。抽象型を持つだけの問題ではありません。しかし、Guava はコンストラクターの代わりにビルダー スタイルも使用します。

于 2013-10-19T23:50:23.197 に答える