3
스프링 웹 서비스에서 일부 JSON을 수신하고 구문 분석해야합니다. JSON은 HTTP POST 요청으로 전송되며이 요청의 형식, 헤더 등을 제어 할 수 없습니다. 다음은 요청의 예입니다.값에 따옴표가 포함되어있을 때 스프링 컨트롤러에서 JSON을 올바르게 구문 분석합니다.
{
"u": 1,
"t": "token",
"rental": "rental_name",
"address": "rental_address",
"arrive": "Monday, Jan. 1 2018",
"depart": "Wednesday, Jan. 3 2018",
"adults": 1,
"children": 0,
"guest": "guest_name",
"keys": "key location with "quotes" goes here",
"inquiry": "inquiry_id"
}
"keys"의 값에는 큰 따옴표가 있습니다. 여기
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8' not supported
는 POST 요청을 수신 나의 봄 컨트롤러의 방법입니다 : 내 봄 컨트롤러에 요청을 섭취하면 그 값에 따옴표를 혼동하고 있기 때문에
, 나는 당연하게도, 다음과 같은 예외를 얻을 :
@RequestMapping(value ="/booking_new", method = RequestMethod.POST, consumes = MediaType.ALL_VALUE)
public ResponseEntity newBooking(@RequestBody Booking payload){
//Extract values from the generated Booking object etc
}
나는 문자열로 @RequestBody를 받고 모든 따옴표를 이스케이프 때문에 단지 JSON을 무효화, 따옴표를 벗어날 수 없다.
요청이 들어올 때 어떤 값이라도 따옴표를 제거하거나 제거 할 수있는 방법이 있습니까?
json에는 아무런 문제가 없습니다. 이 json과 일치하는 클래스를 만들고 Accept는 Post Request의 인수로 사용하십시오. 또한 내용 유형 헤더 – pvpkiran
을 확인하십시오. 예, 이전 주석에서 오류가 내용 유형과 관련되어 있습니다. 아마도 MediaType.APPLICATION_JSON을 사용하고 싶습니까? – PillHead
잘못된 JSON입니다. ''따옴표가있는 키 위치는 "여기에있다"는''따옴표가있는 "키 위치가 \"여기에 있어야한다 "'고해야 JSON이 올바른 것입니다. – Vadim