1. はじめに Jacksonで簡単にJson文字列 -> Javaオブジェクトの変換処理(デシリアライズ)ができるのですが、どうしても一部のプロパティをJSON文字列のまま取得したい要件が発生しました。 何でも入る魔法のプロパティ(ここでは仮にpayloadとする)があって、別のプロパティに定義されているデータ型(FQCN)で復元したいというのが目的です。 JacksonにはJSON文字列を文字列のまま扱う@JsonValueがありますが、これはシリアライズの場合のみ有効なものです。残念ながらデシリアライズの場合は対象外です。 対処方法は独自のJsonDeserializerを実装して、@JsonDeserializeで個別にデシリアライズ処理を指定することです。といっても目的が「JSON文字列のまま取得したい」なのでJsonDeserializerの実装は非常に簡単です。 2. ソース