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 サイトの他の関連記事を参照してください。