私はデータベースにデータを格納する休憩サービスを持っています。私のDTOオブジェクトには、タイプのDOBフィールドがあります。 private ZonedDateTime dateOfBirth;私は値で郵便配達からのリクエストを送信するとjsonのZoneddatetimeフィールドをjavaの快適なwebserviceに送信する
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> createStudent(@Valid @RequestBody StudentDTO studentDto) {
//I have some more fields in StudentDTO along with dob field.
}
私はJsonMappingException(Index cannot be parsed)
を取得しています: dateOfBirth":"2017-10-01T01:00
質問:どのように私は必要なフォーマットへの日時フォーマットを変換することができますか? 私は郵便配達員からのリクエストを送信すると、@ RequestBody.Soを使用してデータが自動的にオブジェクトにバインドされるため、変換コードを書かなければならない場合、どうすればこの問題を解決できますか?
依存関係に 'jackson-datatype-jsr310'がありますか?これにより、java-8の日付/時刻クラスを扱えるようにする一連のシリアライザが導入されています。 –
@ JsonDeserialize.Belowを使用してカスタムデシリアライザを作成しました。コードは @JsonDeserialize(= ZonedDateDeserializer.classを使用) private ZonedDateTime date; \tパブリッククラスZonedDateDeserializerは(JsonParserパーサ、DeserializationContextコンテキストが)にIOException { リターンZonedDateTime.parse(parser.readValueAs(String.class))をスローStdDeserializer { 公共ZonedDateTimeをデシリアライズ延びています。 } } 私は以下のエラーが発生しています:文書を読むことができませんでした:テキスト '2017-10-01T01:00 + 0000'をインデックス16で解析できませんでした(参照チェーンを通じて: –
narendra