1. ホーム
  2. java

[解決済み] シリアライズ中にフィールドの値が NULL の場合、それを無視するように Jackson に指示するにはどうすればよいですか?

2022-03-22 20:50:19

質問

フィールドの値が NULL の場合、シリアライズの際にフィールドの値を無視するように Jackson を構成するにはどうすればよいですか。

例えば

public class SomeClass {
   // what jackson annotation causes jackson to skip over this value if it is null but will 
   // serialize it otherwise 
   private String someValue; 
}

解決方法は?

Jackson >2.0を使用してNULL値を持つプロパティのシリアライズを抑制するには、次のようにします。 を設定します。 ObjectMapper 直接 を使用するか、あるいは @JsonInclude アノテーションを使用します。

mapper.setSerializationInclusion(Include.NON_NULL);

または

@JsonInclude(Include.NON_NULL)
class Foo
{
  String bar;
}

あるいは @JsonInclude をゲッターに含めると、値がヌルでない場合にその属性が表示されるようになります。

より完全な例は 私の答え から Map 内の null 値および Bean 内の null フィールドが、Jackson を通してシリアライズされるのを防ぐ方法 .