以前紹介した、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; }
シリアライズ結果
{ }