개발자

json parse error 문제입니다.

2024년 01월 29일조회 371

리엑트에서 {userId : id} 이렇게 보내는데 컨트롤에서 Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type int from String "[object Object]": not a valid int value] 에러가 발생합니다. User VO로 맴버필드도 int 타입으로 선언되어있는데 파싱에러가발생... @RequestBody User user 로빼고 있는데 이유가 뭘까요?.. 예전에도 비슷한 문제가 있었던거 같은데 검색해도 못찾겟습니다 ㅠㅠ 알려주세요 ㅠ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

인기 답변

이양일님의 프로필 사진

안녕하세요! 이게 무슨 에러인지 궁금하시다면 먼저 에러 로그를 한번 자세히 읽어보시기 바랍니다. 읽어보시면 거기에 발생하신 에러에 대한 힌트가 들어있거든요. 질문에 첨부해주신 에러 로그를 보면 JSON parse error: Cannot deserialize value of type int from String "[object Object]": not a valid int value] 위와 같은 에러가 있는데요, 이를 해석해보시면 "[object Object]" 란 String 을 int 로 변환할 수 없다. 들어온 요청의 파라미터 타입이 int 가 아니다 라는 사실을 확인할 수 있습니다. 즉, 질문자님께서 리액트에서 {"userId": id} 이란 json 포맷으로 요청을 보냈다고 생각하셨겠지만 실제로는 {"userId":"[object Object]"} 이란 String 값으로 요청을 한것으로 판단됩니다. 아마도 리액트 단에서 파라미터를 넘겨주는 과정에서 뭔가 실수가 있었던거 같은데요 이부분을 잘 확인해보시면 되지 않을까 싶습니다. 저의 짧은 의견이 부디 조금이나마 도움이 되셨길 바라겠습니다.

삭제된 사용자님의 프로필 사진

삭제된 사용자

2024년 01월 29일

User 클래스에 기본 생성자 추가해보세요

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 01월 29일

JSON을 파싱할 때 문제가 발생했다는 오류 메시지를 보니, 서버가 JSON 파싱을 시도하고 있으나, 예상한 형식(int 타입)과 일치하지 않아서 에러가 발생하는 것 같습니다. 리엑트에서 보내는 'userId' 데이터의 타입이 정수인지 확인해보세요. "{userId : id}"라고 작성했지만 실제로 'id' 값이 정수가 아닌 다른 형태(String 등)일 수 있습니다. 또한 요청 본문에 전송되는 JSON이 유효한 구조인지 확인해야 합니다. 스프링은 @RequestBody 애너테이션이 붙은 객체를 HTTP 요청 본문으로부터 읽어들입니다. 요청 본문에 있는 JSON 문자열을 Java 객체로 변환하는데 실패하면 위와 같은 에러 메시지가 출력됩니다. 예를 들어서, 만약 User 클래스에 'userId' 필드만 존재한다면 전송되는 JSON 개체 구조는 다음과 같아야 합니다: ```json { "userId": 123 } ``` 하지만 F12개발자 도구나 Postman같은 도구를 사용하여 실제 request body 를 확인해보고 데이터와 구조 모두 잘못된 부분 없이 서버로 전달되었는지 검증하세요.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!