프로젝트/멋사 개인 프로젝트
[Error] POST JSON parse error
산디딤
2023. 1. 4. 15:15
Postman에서 POST 할 때 Json형식으로 body를 넣어줬는데 JSON parse error 가 나왔다.
검색해보면 어노테이션을 바꾸네 뭐 하네 말이 많았는데 나의 경우 생성자가 문제였다.
에러 원인
@RequestBody를 사용하기 위해서는 기본생성자가 필요하다
기본생성자가 필요한 이유는 RestController가 바인딩을 하기 위해서 ObjectMapper를 사용하는데, 이 때 기본 생성자로 DTO를 생성하기 때문이다.
난 기본 생성자가 없었다.
에러 해결
간단하게 기본 생성자를 만들어줬다.
잘 써졌다.
추가
Post에서는 requestDTO에 기본 생성자가 없었는데 요청이 잘 들어갔다.
왜인가.. 찾아보니 '기본 생성자가 없고 인자를 받는 생성자(인자 2개 이상)가 있다면 괜찮다' 라고 한다.
Post에는 title, body 두 개의 인자가 있어서 됐던거였다.
@RequestBody와 생성자에 대한 내용은 아래 블로그 참고
참고
https://blogshine.tistory.com/445
[Spring] @RequestBody에 기본생성자만 필요하고 Setter는 필요없는 이유 - 1
그간 밀어오고 밀어왔던 내용에 대해 정리하고 넘어가야 겠다 싶어 정리하는 글 이다. 우선 @RequestBody에서 어떤 방식으로 객체를 생성하는 지 파악한 후, 해당 객체에 값을 어떤 방식으로 binding
blogshine.tistory.com