アノテーションで指定するnullオブジェクトのJSONシリアライズ

以前紹介した、Jackson シリアライズで、null オブジェクトを出力させない - Oboe吹きプログラマの黙示録
は、ObjectMapper で一律に指定する方法だが個別に指定する方法として対象クラス定義に
アノテーションで指定する方法がある。
com.fasterxml.jackson.annotation.JsonInclude

まずは、@JsonInclude を付けない

import lombok.Data;
@Data
public class Adata{
    private String username = "";
    private String addres;
    private int point;
    private Object info;
}

シリアライズ結果

{
  "username" : "",
  "addres" : null,
  "point" : 0,
  "info" : null
}

Include.NON_NULL

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Adata{
    private String username = "";
    private String addres;
    private int point;
    private Object info;
}

シリアライズ結果

{
  "username" : "",
  "point" : 0
}

Include.NON_EMPTY

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Adata{
    private String username = "";
    private String addres;
    private int point;
    private Object info;
}

シリアライズ結果

{
  "point" : 0
}

Include.NON_DEFAULT

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

@Data
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
public class Adata{
    private String username = "";
    private String addres;
    private int point;
    private Object info;
}

シリアライズ結果

{ }