ホームページ > Java > &#&チュートリアル > Jackson が Java で Null フィールドをシリアル化しないようにするにはどうすればよいですか?

Jackson が Java で Null フィールドをシリアル化しないようにするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-25 14:36:13
オリジナル
733 人が閲覧しました

How Can I Prevent Jackson from Serializing Null Fields in Java?

Jackson による Null フィールドのシリアル化の抑制

Jackson は、Java オブジェクトと JSON の間のシリアル化と逆シリアル化を処理する、人気のある Java データ バインディング ライブラリです。デフォルトでは、Jackson はオブジェクトのすべての非 null フィールドをシリアル化します。ただし、値が null の場合、シリアル化中に特定のフィールドを無視したい場合があります。

@JsonInclude アノテーションの使用

Jackson 2.0 以降では、@ が導入されています。 JsonInclude アノテーション。シリアル化中にフィールドをいつ含めるか除外するかを指定できます。値が null の場合にフィールドを無視するには、Include.NON_NULL 値を使用します。

@JsonInclude(Include.NON_NULL)
public class SomeClass {
  private String someValue;
}
ログイン後にコピー

このアノテーションをフィールドに適用すると、Jackson は、値が null の場合、シリアル化中に someValue フィールドをスキップします。

ObjectMapper 構成の変更

または、 Null 値のシリアル化を抑制するように ObjectMapper を直接構成できます。これを行うには、Include.NON_NULL 値を指定して setSerializationInclusion メソッドを使用します。

mapper.setSerializationInclusion(Include.NON_NULL);
ログイン後にコピー

これにより、マッパーによってマップされたすべてのオブジェクトのシリアル化中にすべての null フィールドを無視するように Jackson に指示されます。

で @JsonInclude を使用するGetters

もう 1 つのオプションは、フィールドの getter メソッドで @JsonInclude アノテーションを使用することです。これにより、返された値に基づいてフィールドの包含または除外を制御できます。例:

public class SomeClass {
  private String someValue;
  
  @JsonInclude(JsonInclude.Include.NON_NULL)
  public String getSomeValue() {
    return someValue;
  }
}
ログイン後にコピー

この場合、getter メソッドが null 以外の値を返した場合にのみ、someValue フィールドがシリアル化中に含まれます。

以上がJackson が Java で Null フィールドをシリアル化しないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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