前置き
使い方とか詳しい話はzakiさんのスライドとかみるとよさそう
現状だとRetrofitで対応しているConverterは下記3つの選択肢がある
- gson
- jackson
- moshi
メソッド数
Name | method count |
---|---|
gson-2.4.jar | 1242 |
jackson-databind-2.6.3.jar | 8019 |
jackson-core-2.6.3.jar | 2192 |
jackson-annotation-2.6.3.jar | 248 |
moshi-1.0.0.jar | 609 |
あんまり言及されないが、Androidは65K問題とかあるので気にしたい点。
jacksonは早いのだけれど、10Kのmethod数を持っていかれるのでデカいアプリやGooglePlayServicesを利用するアプリは注意しておいたほうがいい。
JSONのfield存在チェック
例えば {"hoge":"fuga"}
ってjsonが来た時に {"piyo":""}
ってfieldが存在することを保証したい。
これを例外として扱う仕組みをライブラリ側でサポートしてるかどうか
Gson
- Gson optional and required fields
- できるにはできるがクラスごとにDeserializerを設定しなくちゃならないのがツライところ
Jackson
Moshi
- ドキュメントがあんまりなくて不明...
- 誰か知ってたら教えて下さい
個人的な感想
Jackson
- 早くてよい
- method数がでかすぎてAndroidで利用するには要注意
Gson
- 安定していて良い
- PerformanceとRequiredFieldチェックが効かないのが残念.
Moshi
- 1.0.0が出たばかりでまだ若い
- だがシンプルで軽量でよさそうな感じ
- パフォーマンスもこれからに期待