2016-03-20 8 views
0

私は、独自の特別なデシリアライザとシリアライザで処理する必要のあるいくつかの型を持っていますが、型がオプションの中に入れ子になっているときに、それらを使用するようにJacksonに指示する方法を教えてください。Optional for Jacksonにネストされたタイプのカスタムデシリアライザを指定する方法はありますか?

私はJDK8Moduleを使用しています。これは、特別な処理を必要としないタイプの場合に効果的です。

@JsonDeserialize(?????) 
Optional<SpecialType> myField 
+0

ちょっと野生のショット:https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotationsに記載されている「@ JsonCreator」はどうですか? –

+0

これをこのような状況に適用する方法を理解するのは苦労しています。特定のフィールドにクリエイターを使用するように指定するにはどうすればよいですか?私はこのメソッドを他のクラスで作成しているようですが、別のクラスで定義されたデリゲートベースの作成者を使って、Pojoの特定のフィールドにデータを設定するようにjacksonに指示することは私には分かりません。 – Selena

答えて

0

これを実現するための正しい方法は次のとおりです:

彼らはオプションのフィールドで使用されている場合@JsonDeserializeと@JsonSerialize注釈はオプション内の値に適用する任意の方法を持っていないようです
@JsonDeserialize(contentUsing=CustomDeserializer.class) 
Optional<SpecialType> myField 

この作業を妨げたdefectが2.7.4で修正されました。

関連する問題