tokuhirom's blog

Jackson 2.10 についてのメモ

ざっくりいうと * Jackson 2.10 は Jackson 3 のインターフェースを含みつつ 2 系の旧インターフェースを新インターフェースを @Deprecated 扱いで含んだリリース * Spring Boot 2.2 は Jackson 2.10 に依存している * Boot 2.2 にした段階で、Deprecation Warnings でまくるからシュッと Jackson 3 にしたほうが良さそう。


Jackson 2.10 features - @cowtowncoder - Medium を参考のこと。

Jackson 2.10 は、Jackson 3 に向けての Migration 用のリリースになっている。2.9までのインターフェースも @Deprecated 状態で残しつつ、3以後のあたらしいインターフェースも実装されている。今のうちに新しいインターフェースに移行しておくと後々楽になる、と思う。 (Spring Boot 2.2 は Jackson 2.10 に依存している)

2.10 では以下の3つのメジャーなイシューを解決している。 1. デシリアライズ時におけるセキュリティイシューの根本解決 2. 3.0 における新しいインターフェースへの移行促進 3. module-info.class 関連

で、1 はまあいいとして、2 が重要だなと思っている。新しいインターフェースがどういうものかというと以下のような感じ。

  • Builder Pattern ベースになっている
  • 特定のフォーマット固有のオプションとそうじゃないものの分離

の2点が新しいインターフェースの特徴。mutable な deserializer とか、最近は流行らないからね。

Jackson 3.0 以後では ObjectMapper は configuration 系のメソッドは持たない。

Created: 2019-10-19 18:00:42 +0900
Updated: 2019-10-19 18:00:42 +0900