[Java] 9. Class 객체에 null값인 객체의 필드명 미노출(NON_NULL, NON_EMPTY)
in Java on Java 개발 기록
가끔 클라이언트에 데이터를 응답 할때 객체에 null값인 객체의 필드명들도 같이 아래와 같이 리턴된다. 단순한 검색 필드들이지만 불필요한 필드들의 null 값 리턴이나 의도적으로 미노출 하고자 하는 필드에 @JsonInclude 의 어노테이션에 NON_NULL옵션
를 선언하면 된다.
NoticeModel fields
@Data
public class NoticeModel {
private Long noticeId;
private String title;
private String content;
private String searchUserName;
private String searchUseYn;
}
output
{
"noticeId" : 9,
"title" : "공지사항 제목",
"content" : "공지사항에 대한 내용",
"searchUserName" : null,
"searchUseYn" : null
}
NoticeModel @JsonInclude fields
//Class Level에서 설정할 수 있다.
//@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class NoticeModel {
private Long noticeId;
private String title;
private String content;
@JsonInclude(JsonInclude.Include.NON_NULL)
private String searchUserName;
@JsonInclude(JsonInclude.Include.NON_NULL)
private String searchUseYn;
}
output
{
"noticeId" : 9,
"title" : "공지사항 제목",
"content" : "공지사항에 대한 내용"
}
NON_NULL
- null 제외
NON_EMPTY
- null 제외
- Collection, Map의 isEmpty()가 true 이면 제외
- Array의 length가 0이면 제외
- String의 length()가 0이면 제외
@JsonInclude 에 더 많은 옵션이 있다.