@RequestBody를 사용하여 JSON 데이터를 받으려고 하는데 JSON parse error 에러가 나는 경우가 있다.
이때 살펼 볼것은 더블쿼터이다. 나는 rest api를 테스터하려고 curl을 사용하여 요청을 하였다.
변경전
curl -X POST http://localhost:9090/hi -H "Content-Type: application/json" -d '{"name":"qoqoqo"}'
Error
2020-05-19 22:34:00.509 WARN 24768 --- [nio-9090-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character (''' (code 39)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character (''' (code 39)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
at [Source: (PushbackInputStream); line: 1, column: 2]]
Error 이유
싱클 쿼터를 이용하여 결고 닫았기 때문이다. 이를 해결 하기 위하여 이스케이프 \ 를 사용하여 처리하여 요청 하였더니 정상작동 하였다.
변경후
curl -X POST http://localhost:9090/hi -H "Content-Type: application/json" -d "{\"name\":\"qoqoqo\"}"
'Spring boot' 카테고리의 다른 글
Springboot Junit 사용시 @TestPropertySource 에러 (0) | 2020.06.22 |
---|---|
Spring boot security 적용시 post 404에러 (0) | 2020.06.16 |
Spring boot jsp와 Thymeleaf 사용하기 (2) | 2020.05.16 |
Spring boot Controller test (0) | 2020.05.15 |
Spring boot Interceptor (0) | 2020.05.15 |