気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Kotlin SpringBoot利用時のJackson利用時の設定

SpringBootデフォルト設定

以下の設定がdisableになっている

  • MapperFeature.DEFAULT_VIEW_INCLUSION
  • DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
    • レスポンスデータクラスに存在しない項目が送付されてもエラーする設定。予告なしにAPI側が項目追加してもエラーで落ちないようにするため、disableにするのが望ましい
  • SerializationFeature.WRITE_DATES_AS_TIMESTAMPS
    • 日付/時刻はデフォルトでタイムスタンプとしてシリアル化される。

SpringBootデフォルト設定以外に別途設定が必要な場合に設定を追加する

Kotlin クラスとデータクラスのサポートライブラリ設定

libs.versions.toml

[libraries]
jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin" }

Instant → Stringの変換がシリアライズ時にうまく動作しない場合

以下設定をConfigクラスなどの設定に追加すると、エポックTimeに変換されていたのが、2011-12-03T10:15:30.123456Zの形式に変換されるようになる。

objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)

参考URL

その他のJackson設定