1. ホーム
  2. ジャクソン

[解決済み】Jackson JSONマッパーでjava 8 java.timeをシリアライズ/デシリアライズする。

2022-03-31 05:57:47

質問

Jackson JSON マッパーを Java 8 LocalDateTime で使用するにはどうすればよいですか?

org.codehaus.jackson.map.JsonMappingException: JSON Stringから型[単純型、クラスjava.time.LocalDateTime]の値をインスタンス化できません。単一Stringのコンストラクタ/ファクタメソッドがありません(参照チェーンを介して。MyDTO["field1"]->SubDTO["date"] のような参照連鎖を経由して)。

どのように解決するのですか?

ここでは、カスタムシリアライザー/デシリアライザーを使用する必要はありません。使用方法 jackson-modules-java8 の datetime モジュール :

JacksonにJava 8 Date & Time APIデータ型(JSR-310)を認識させるためのDatatypeモジュール。

このモジュールは、かなりの数のクラスのサポートを追加します。

  • 期間
  • インスタント
  • ローカル日付時間
  • ローカル日付
  • ローカルタイム
  • 月日
  • オフセット日付時刻(OffsetDateTime
  • オフセット時間
  • 周期
  • 年 月
  • ゾーニング日付時間
  • ゾーンアイディー
  • ゾーンオフセット