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

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

DDD
リリース: 2024-12-02 15:19:11
オリジナル
591 人が閲覧しました

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

Spring で ObjectMapper を構成する方法

問題:

で ObjectMapper を構成したいと考えています。 @JsonProperty アノテーションが付けられた要素のみをシリアル化する Spring。ただし、推奨される手順に従っているにもかかわらず、NumbersOfNewEvents クラスにはシリアル化時にすべての属性が含まれています。

説明:

カスタム CompanyObjectMapper で、可視性チェッカーを設定しました。すべてのフィールドとゲッター/セッターをデフォルトで非表示にします。これにより、ObjectMapper が newAccepts フィールドと openRequests フィールドにアクセスしてシリアル化できなくなります。

解決策:

望ましい結果を達成するには、よりターゲットを絞ったアプローチを使用して可視性を構成できます。チェッカー。以下に例を示します。

public class CompanyObjectMapper extends ObjectMapper {
    public CompanyObjectMapper() {
        super();
        SerializationConfig config = getSerializationConfig();
        config.withView(Some.class)   // Specify which view to use
             .withVisibility(JsonAutoDetect.Visibility.NONE)
             .withVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
    }
}
ログイン後にコピー

この構成では、他のフィールドを非表示にしたまま、@JsonProperty アノテーションを持つプロパティをシリアル化できます。

Spring Boot 構成:

Spring Boot および Jackson 2.4.6 以降を使用している場合は、次を使用できます。構成:

@Configuration
public class JacksonConfiguration {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper mapper = new ObjectMapper();
        mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);  // Enable default typing for polymorphic types
        mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);      // Allow serialization of fields
        mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);  // Enable default view inclusion
        return mapper;
    }
}
ログイン後にコピー

この構成では、ポリモーフィック型のデフォルトの型付けが有効になり、すべてのフィールドのシリアル化が可能になり、デフォルトのビューの包含が有効になります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート