私はjava spring mvcプロジェクトに取り組んでいます。私はクラスを拡張してObjectMapper
という形式のjacksonを作成しました。また、私はCustomObjectMapper
を春の設定に設定しています。だから、jacksonがserialize
またはdeserialize
を望むたびに、私のCustomObjectMapper
が動作し、すべてが正しいです。しかし、私は1つの問題があります:jacksonデシリアライザ - モデルフィールドの注釈リストを取得
私はカスタム注釈@AllowHtml
を作成しました。私はそれを私のモデルのいくつかのString
フィールドの上に置きました。また、私はこの方法でJsonDeserializerString
クラスを作成しました:
public class JsonDeserializerString extends JsonDeserializer<String>{
@Override
public String deserialize(JsonParser jp, DeserializationContext dc) throws IOException, JsonProcessingException {
return jp.getText();
}
}
そして、私はこのように私のCustomObjectMapper
でこのデシリアライザを設定します。
@Component
public class CustomObjectMapper extends ObjectMapper {
public CustomObjectMapper(){
SimpleModule module = new SimpleModule();
module.addDeserializer(String.class, new JsonDeserializerString());
this.registerModule(module);
}
}
これは期待通りに動作し、ユーザーがフォームを送信すると、すべての文字列フィールドはJsonDeserializerString
で逆シリアル化されます。しかし、私はにデシリアライザのフィールドアノテーションを取得したいと思います。。実際には、私はしたい、文字列フィールドにモデル内の特定の注釈がある場合、いくつかの論理を行います。これどうやってするの?