Spring WebサービスでJSONを受け取って解析する必要があります。 JSONはHTTP POSTリクエストで送信され、私はこのリクエストの書式、ヘッダーなどを制御できません。これはリクエストの例です:値に引用符が含まれている場合、Spring Controllerで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です。 ''キーのある場所を引用符で囲んで ''ここに行く ''をキーの場所にする必要があります。 – Vadim