ホームページ >Java >&#&チュートリアル >Spring でシリアル化と逆シリアル化にカスタム ObjectMapper を使用するにはどうすればよいですか?

Spring でシリアル化と逆シリアル化にカスタム ObjectMapper を使用するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-05 10:24:12216ブラウズ

How Can I Make Spring Use My Custom ObjectMapper for Serialization and Deserialization?

Spring での ObjectMapper の構成

Spring では、シリアル化プロセスと逆シリアル化プロセスの動作をカスタマイズするように ObjectMapper を構成できます。一般的な使用例の 1 つは、@JsonProperty などの特定のアノテーションが付けられていない限り、フィールドをシリアル化から除外することです。

問題:

ObjectMapper を次のように構成するとき@JsonProperty アノテーションが付けられたフィールドのみをシリアル化します。NumbersOfNewEvents クラスにはシリアル化されたフィールドのすべての属性が含まれます。 JSON.

答え:

この問題を理解するための鍵は、servlet.xml で定義されたカスタム CompanyObjectMapper が Spring で使用されていないことです。解決策は、CompanyObjectMapper Bean に @Configuration アノテーションを付け、Spring 構成クラスの Bean メソッドとして定義することです。これにより、カスタム ObjectMapper が Spring によって確実に選択され、使用されるようになります。

Spring Boot でこれを実現する方法の例を次に示します。

@Configuration
public class JacksonConfiguration {

    @Bean
    public ObjectMapper objectMapper() {
        return new CompanyObjectMapper();
    }
}

この構成は、デフォルトの ObjectMapper Bean をオーバーライドし、カスタム CompanyObjectMapper がシリアル化に使用されるようにし、 deserialization.

注: CompanyObjectMapper クラスで定義された VisibilityChecker は、Jackson 2.4.6 を使用したシリアル化には影響しません。シリアル化からフィールドを除外するには、代わりに @JsonIgnore アノテーションを使用します。

以上がSpring でシリアル化と逆シリアル化にカスタム ObjectMapper を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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