@JsonInclude

jaegeunsong97·2024년 1월 31일
0

@JsonInclude는 Java 객체를 JSON으로 변환할 때 포함할 필드를 지정합니다. 객체의 일부 필드를 무시하고 JSON으로 변환할 떄 해달 필드를 제외할 수 있습니다.

  1. @JsonInclude(JsonInclude.Include.NON_NULL)

Null이 아닌 필드만 JSON으로 포함됩니다. Null인 경우 JSON에서 생략됩니다.

@JsonInclude(JsonInclude.Include.NON_NULL)
public class MyObject {
    private String name;
    private Integer age;
    // getters and setters...
}
  1. @JsonInclude(JsonInclude.Include.NON_EMPTY)

Null이 아니고, 빈 문자열("")이 아닌 필드만 포함됩니다. 즉, 문자열 필드가 비어있는 경우에도 JSON에서 생략됩니다.

@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class MyObject {
    private String name;
    private String address;
    // getters and setters...
}
  1. @JsonInclude(JsonInclude.Include.NON_DEFAULT)

기본값으로 초기화된 필드만 포함됩니다. 숫자형은 0, boolean은 false가 됩니다.

@JsonInclude(JsonInclude.Include.NON_DEFAULT)
public class MyObject {
    private int id; // 기본값 0
    private boolean active; // 기본값 false
    // getters and setters...
}
  1. @JsonInclude(JsonInclude.Include.ALWAYS)

항상 모든 필드를 포함합니다. Null이든 아니든 상관없이 모든 필드를 JSON에 포함합니다.

@JsonInclude(JsonInclude.Include.ALWAYS)
public class MyObject {
    private String name;
    private Integer age;
    // getters and setters...
}
  1. 사용자 정의 로직

사용자 정의로직을 제공해서 어떤 필드를 포함시킬지 결정할 수도 있습니다.

@JsonInclude(
    value = JsonInclude.Include.CUSTOM,
    valueFilter = MyCustomFilter.class
)
public class MyObject {
    private String sensitiveData;
    // getters and setters...
}
profile
블로그 이전 : https://medium.com/@jaegeunsong97

0개의 댓글