HttpMessageNotReadableException: JSON parse error와 boolean/Boolean 타입

크리링·2023년 7월 25일
0

오늘의 문제

목록 보기
7/9
post-thumbnail

문제

프론트와의 데이터를 주고 받는 API를 구현하는 중 다음과 같은 에러를 발견했다.

HttpMessageNotReadableException: JSON parse error ~



문제 원인과 해결

문제의 원인은 간단한 곳에 있었다.

프론트에서는 Map<String, List<FrFoodCreateDTO>>의 형태로 보내주고 있는데 받는 곳에서는 List<FrFoodCreateDTO>의 형태로 잘못 받고 있어 생긴 문제였다.

다음과 같이 @RequestBody부분을 고치니 위의 에러가 나오지 않고 정상 작동했다.






문제 2

바로 다른 문제가 발생했다.
프론트에서 보내주는 JSON 형태의 객체 내에서 boolean 필드가 false로 들어오는 문제다.


위의 조건문에서 true 값으로 프론트에서 보낸 값들이 false로 되어 조건문을 타지 못하였다.



원인과 해결


isMixFood 라는 값이 boolean 자료형에서 Boolean으로 바꾸어 해결하였다.

Lombok에서 제공하는 @Getter@Setter 어노테이션을 사용할 경우 자동으로 getter/setter 메소드를 생성해주는데, 이때 boolean 타입의 변수에 붙는 prefixget이 아닌 is이므로 @RequestBody에서 찾을 수 없어 바인딩되지 않는 원인이었다.

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

유익한 글이었습니다.

답글 달기