TIL

[TIL] Response값을 @JsonInclude 사용하여 조정해보자..

봄봄로그 2023. 8. 29. 18:29

Response로 어떤 객체를 반환시키는데 null인 필드는 반환시키고 싶지 않았다.....

객체를 생성할 때 new로 생성도 해보고 build도 생성해보고 emptyList를 반환도 해보고.. 여러가지를 해보았지만 되지 않았다.

그러다가 어노테이션으로 설정하면 된다는 기쁜 소식을 듣고 사용하게 되었다.. 역시... 선배님들이 최고다👍

 

@JsonInclude(JsonInclude.Include.NON_NULL)
public class CommonResponse<T> {
    private T data;
    private List<ErrorResponse> errors;
}

이렇게 사용하면 되는데 target을 어느 선 까지 지정할 것인지 지정하여 사용하면 된다.

 

NON_NULL

null 은 제외하고 출력

NON_EMPTY

null 과 "" empty는 제외하고 출력

 

=> 이번에는 주로 이 두개를 사용했다. 

 

 

 


각 옵션별 반환 값

@JsonInclude 를 사용하지 않았을 때

{
    "data": [],
    "errors": null
}

빈 데이터와 null이 모두 나온다.

 

 

@JsonInclude(JsonInclude.Include.NON_NULL)

{
    "data": []
}

흠흠 null이 제외됐다.

 

 

@JsonInclude(JsonInclude.Include.NON_EMPTY)

{}

empty인 data까지 제외되었으니 아무 것도 뜨지 않는다.