PaginationResponseDTO에서 null 값 처리
PaginationResponseDTO에서 null 값 처리
1. 문제 상황
- 페이지네이션 응답구조를 위해
PaginationResponseDTO
를 오버로딩으로 작성하여, 단일데이터(data), 데이터리스트(dataList) 로 나누어서 응답하도록 작성하였습니다. - 기존 구조에서는
PaginationResponseDTO
가 단일데이터(data), 데이터리스트(dataList) 중에 하나를 선택하여 사용하게 되는데, 불필요하게 다른 한쪽이 null 나와 항상 데이터 응답값에 null 이 포함되는 문제가 생겼습니다. -
물론 존재한다고하여 문제가 생기는 것은 아니였지만, null 이 반환된다는 부분이 신경쓰여 해결방법을 알아보았습니다.
-
2. 해결 방법과 그 후
- 생성자 오버로딩이 있더라도
PiginationResponseDTO
의 모든 필드는 객체가 생성될 때 포함된다는 것을 알았습니다. - 자바의 객체 직렬화는 모든 필드를 포함하기 때문에 값을 넣지 않더라도 null 로 출력됩니다.
-
오버로딩된 생성자는 초기화 방식만 다르게 설정할 뿐, 필드 자체는 항상 존재한다는 것을 알았습니다.
-
해결방법: JSON 직렬화 시 null 이 포함되지 않게 하려면,
@JsonInclude(JsonInclude.Include.NON_NULL)
Annotation 을 추가하여 null 값을 직렬화하지 않도록 설정하면 해결할 수 있습니다. -