[TIL] 230824 @JsonInclude 뭐야.. 너무 좋은 어노테이션이잖아?

CountryGirl·2023년 8월 24일
0

TIL

목록 보기
48/80

📌 @JsonInclude

CommonResponseResponse공통화할 때 사용을 했다.

public class CommonResponse<T> {
    private String msg;
    private T data;

    public CommonResponse(String msg){
        this.msg = msg;
    }
    public CommonResponse(T data){
        this.data = data;
    }
}

에서 data가 있는 API response가 있고 없는 API response가 있었다.

만약 없는 response 라면 datanull 값으로 나오게 된다.
null 값이 나오는 것이 좋은 API는 아니라고 생각했다.

그렇다고 data 가 있는 것과 없는 것을 구별하게 되면 CommonResponse (공통화 작업) 를 하는 것이 의미 없어진다고 생각했다.

만약 datanull 이라면 data는 보내지 않고 msg 만 보내고 싶었다.

그래서 찾아낸 것이 @JsonInclude 이다!

@JsonInclude 는 여러 옵션들이 있다.

defalutALWAYS 이다. 모든 값을 출력한다.

😎 @JsonInclude 여러 옵션들

1. JsonInclude.Include.ALWAYS

: 모든 데이터를 JSON으로 변환 (null 이든 아니든)

2. JsonInclude.Include.NON_NULL

: null인 데이터는 제외

3. JsonInclude.Include.NON_ABSENT

: null이거나 absent 값을 제외

4. JsonInclude.Include.NON_EMPTY

: null이거나 empty 로 간주되는 값을 제외 (빈 문자열, 빈 컬렉션, 빈 맵 등)
: 기본적으로 NON_NULL, NON_ABSENT 를 포함

5. JsonInclude.Include.NON_DEFAULT

: 해당 필드 값이 기본값과 다른 경우에만 해당 필드 출력 (변경된 필드 강조)

6. JsonInclude.Include.CUSTOM

: 사용자 정의 필터 객체를 지정해 포함 여부를 결정


나는 JsonInclude.Include.NON_NULL 를 사용해서 data 가 없는 responsemsg 만 출력하도록 하였다.

profile
💻🌾시골소녀의 엉망징창 개발 성장일지🌾💻 (2023.05.23 ~)

0개의 댓글