@JsonInclude
는 Java 객체를 JSON으로 변환할 때 포함할 필드를 지정합니다. 객체의 일부 필드를 무시하고 JSON으로 변환할 떄 해달 필드를 제외할 수 있습니다.
@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...
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
Null이 아니고, 빈 문자열("")이 아닌 필드만 포함됩니다. 즉, 문자열 필드가 비어있는 경우에도 JSON에서 생략됩니다.
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class MyObject {
private String name;
private String address;
// getters and setters...
}
@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...
}
@JsonInclude(JsonInclude.Include.ALWAYS)
항상 모든 필드를 포함합니다. Null이든 아니든 상관없이 모든 필드를 JSON에 포함합니다.
@JsonInclude(JsonInclude.Include.ALWAYS)
public class MyObject {
private String name;
private Integer age;
// getters and setters...
}
사용자 정의 로직
사용자 정의로직을 제공해서 어떤 필드를 포함시킬지 결정할 수도 있습니다.
@JsonInclude(
value = JsonInclude.Include.CUSTOM,
valueFilter = MyCustomFilter.class
)
public class MyObject {
private String sensitiveData;
// getters and setters...
}