개발/Spring
Spring JSON 응답 시 boolean 타입의 is가 생략되는 문제
뽀글뽀글 개발자
2024. 2. 1. 16:53
서버에서 다음와 같은 DTO를 클라이언트에게 응답으로 보냈을 때 is가 생략되어 "check: false"로 응답이 들어오는 문제가 일어난다면 래퍼 타입인 Boolean 타입으로 변경해주어야 한다.
@Getter
public class Dto{
private boolean isChecked;
}
Boolean 타입으로 변경 시 해결되는 이유
JSON 변환 시Getter를 사용하기 때문에 Getter를 무조건 생성해야하는데, Boolean 타입을 사용하게 되면 Getter로 getIsChecked()가 생성되고, boolean 타입을 사용하면 getChecked()가 생성되기 때문에 이런 문제가 발생한 것 같다.
따라서 롬복을 사용하지 않고 getter를 직접 getIsChecked()로 생성해주면 boolean 타입을 사용해도 무관하다.
참고로 @JsonProperty로 값을 직접 지정하면 isChecked와 checked 두 개의 값이 생성되어 전달되어 제대로된 해결이 되지않는다.