initiationDate
のフィールドは、ToStringSerializer
クラスからISO-8601フォーマットにシリアル化されています。LocalDateTime - LocalDateTime.parseによる逆シリアル化
@JsonSerialize(using = ToStringSerializer.class)
private LocalDateTime initiationDate;
私は、次のJSON、
...
"initiationDate": "2016-05-11T17:32:20.897",
...
を受信したとき、私はLocalDateTime.parse(CharSequence text)
ファクトリメソッドでそれをデシリアライズします。すべての私の試みはcom.fasterxml.jackson.databind.JsonMappingException
で終了:
String
値('2016-05-11T17:32:20.897'
)からタイプ[単純型、クラスjava.time.LocalDateTime
]の値をインスタンス化することはできません。いいえ単一のString
コンストラクタ/ファクトリメソッド
どのように達成できますか?ファクトリメソッドはどのように指定できますか?
EDIT:
問題は、プロジェクトへのjackson-datatype-jsr310 moduleを含むとLocalDateTimeDeserializer
で@JsonDeserialize
を使用することによって解決されています。
@JsonSerialize(using = ToStringSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime initiationDate;
における登録Java8モジュール私はそれを知りませんそれは 'parse'を使いますが、適切な拡張子[ここ](https://github.com/FasterXML/jackson-datatype-jsr310)を追加しましたか? –
@SotiriosDelimanolis、いいえ、私の問題をどうやって解決しますか?私はファクトリメソッドを指定する必要があります。 'LocalDateTime.parse(" 2016-05-11T17:32:20.897 ")'うまく動作します。 – Andrew