null 값 출력시키지 않기 - @JsonInclude(JsonInclude.Include.NON_NULL)

박영준·2023년 6월 29일
0

Spring

목록 보기
29/58

1. 불필요한 null 값

Postman 으로 테스트 중
작성, 전체 조회, 선택 조회, 수정, 삭제 모두에서 null 값이 반환됐다.

특히 '게시글 삭제' 기능에서는 "게시글을 삭제했습니다." 라는 메시지만 반환되도록 하면 됐지만
그와 함께 다른 데이터들이 null값과 같이 반환되는 문제가 발생했다.

2. @JsonInclude(JsonInclude.Include.NON_NULL)

이 어노테이션 이름에서 알 수 있듯이,
JSON 데이터 형태에서 null 값을 포함시키지 않는 어노테이션이다.

ResponseDto 에 해당 어노테이션 하나를 추가해줬다.

@Getter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BoardResponseDto {
    private Long id;        // 게시글 구분을 위한 id 값
    private String title;       // 제목
    private String username;    // 작성자명
    private String contents;    // 작성 내용
    private LocalDateTime createdAt;        // 게시글 생성 날짜
    private LocalDateTime modifiedAt;       // 게시글 수정 날짜
    private String msg;     // 게시글 삭제 시, 삭제 성공 메시지

    public BoardResponseDto(Board board) {
        this.id = board.getId();
        this.title = board.getTitle();
        this.username = board.getUsername();
        this.contents = board.getContents();
        this.createdAt = board.getCreatedAt();
        this.modifiedAt = board.getModifiedAt();
    }

    // 게시글 삭제 시, 삭제 성공 메시지
    public BoardResponseDto(String msg) {
        this.msg = msg;
    }
}

특히, 게시글 삭제에서 차이가 명확히 드러났다.


참고: [Spring] 객체의 NULL 필드 노출하지 않기 :: @JsonInclude(JsonInclude.Include.NON_NULL)

profile
개발자로 거듭나기!

0개의 댓글