ホームページ >Java >&#&チュートリアル >@JsonProperty アノテーション付きフィールドのみをシリアル化するように Spring の ObjectMapper を構成するにはどうすればよいですか?

@JsonProperty アノテーション付きフィールドのみをシリアル化するように Spring の ObjectMapper を構成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-07 14:02:17730ブラウズ

How to Configure Spring's ObjectMapper to Serialize Only @JsonProperty Annotated Fields?

Spring での ObjectMapper の構成: フィールドのシリアル化の制限

@JsonProperty アノテーションが付けられたフィールドのみをシリアル化するように ObjectMapper を構成するには、次のアプローチを検討してください。

1.カスタム ObjectMapper を作成します

public class CustomObjectMapper extends ObjectMapper {
    public CustomObjectMapper() {
        super();
        setVisibility(Visibility.NONE).enable(Visibility.NON_EMPTY);
    }
}

このカスタム ObjectMapper は、注釈のないフィールドのシリアル化を無効にし、値が null 以外のフィールドのみを含めます。

2. Spring でのカスタム ObjectMapper の登録

servlet.xml で、次のようにカスタム ObjectMapper を登録します。

<bean>

3.注釈ベースの構成の更新

@Configuration クラスがカスタム CountingJacksonHttpMessageConverter:

@Configuration
public class JacksonConfiguration {

    @Bean
    public MappingJacksonHttpMessageConverter jsonConverter() {
        MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
        converter.setObjectMapper(jacksonObjectMapper());
        return converter;
    }
}

4 を登録していることを確認します。適切なバージョンの依存関係を確認する

Jackson の互換性のあるバージョンを使用していることを確認します。この場合、Spring での使用には Jackson 2.x が推奨されます。

5.デフォルトの Jackson 注釈の除外を確認します

カスタム ObjectMapper の setVisibility メソッドをオーバーライドして、デフォルトの Jackson 注釈が可視性検出から除外されていることを確認します。

追加の考慮事項:

  • このアプローチのみ@JsonProperty で注釈が付けられたフィールドではなく、他の注釈 (@JsonSerialize など) でマークされたフィールドはシリアル化します。
  • シリアル化からフィールドを除外すると、デフォルトの動作に依存する他のコンポーネントの機能 (永続化、永続化など) に影響を与える可能性があることに注意してください。
  • より高度なシリアル化のカスタマイズについては、Jackson を参照してください。ドキュメント。

以上が@JsonProperty アノテーション付きフィールドのみをシリアル化するように Spring の ObjectMapper を構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。