私はそうのような分野での要求からJSONオブジェクトをデシリアライズするために春のブートアプリで使用されているJavaクラスを持っている:可変長の分数秒で日付を逆シリアル化するJavaの日付パターン?
@JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ss[.SSS]XXX", timezone = "UTC")
Instant timestamp;
"をデシリアライズするためにジャクソンV2.6.6 @JsonFormatアノテーションを使用していますJSONの「タイムスタンプ」フィールドに表示されます。
"2017-01-09T21:49:26.70Z"
問題がない:私は見ている何
は、値のようなものであるとき、ということです。値は以下のように、小数第二小数点以下の桁数の単一の番号が含まれ、4つ以上の持っている場合
しかし:
"2017-01-09T21:49:26.7Z" or "2017-01-09T21:49:26.7000Z"
それから私は、次のエラーが発生します:
Caused by: java.time.format.DateTimeParseException: Text '2017-01-09T21:49:26.7Z' could not be parsed at index 19
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) ~[?:1.8.0_65]
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1777) ~[?:1.8.0_65]
at com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer.deserialize(InstantDeserializer.java:150) ~[jackson-datatype-jsr310-2.6.6.jar:2.6.6]
at com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer.deserialize(InstantDeserializer.java:45) ~[jackson-datatype-jsr310-2.6.6.jar:2.6.6]
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:520) ~[jackson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:101) ~[jackson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer.deserialize(SuperSonicBeanDeserializer.java:156) ~[jackson-module-afterburner-2.6.6.jar:2.6.6]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3736) ~[jackson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2764) ~[jackson-databind-2.6.6.jar:2.6.6]
何このパターンを修正して、受け入れられる小数点以下の小数点以下の桁数の点で柔軟にすることができますか? https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
しかし、オブジェクトマッパーを寛大なモードに設定する方法がわかりません。
何も動作しない場合は、 'String'と読むことができ、正規表現を使用して解析することができます。 – Caner