Java Json⇔オブジェクト 相互変換 ライブラリ選定
https://qiita.com/takehiro224/items/6db2841c0abbf4ffb233
●開発環境
・Eclipse4.8 photon
・Java10
●やったこと
1.ライブラリの選定
1.1.どんなライブラリがあるか
1.2.使いやすさ、性能的な面でどれがよいか順序決め
1.3.ライブラリのサポートは長く続くか調査
2.変換処理の共通化
●詳細
1.ライブラリの選定
1.1.どんなライブラリがあるか
⇒とりあえず3つ選んだ
・Jackson
使い方: Jackson使い方メモ
DL:
Home · FasterXML/jackson-core Wiki · GitHub
Home · FasterXML/jackson-databind Wiki · GitHub
Home · FasterXML/jackson-annotations Wiki · GitHub
・Gson
使い方: GSONの基本的な使い方
・Json-Simple
DL: Google Code Archive - Long-term storage for Google Code Project Hosting.
1.2.使いやすさ、性能的な面でどれがよいか順序決め
⇒下記ページを参考に、性能テスト。
⇒性能テストをした結果、Jackson>Gson>Simpleの順に早かった。
プロジェクトはこちら。
ソースフォルダtestを参照。
ProjectJsonLibrary.zip - Google ドライブ
ログはこちら。
ProjectJsonLibrary_コンソール記録.txt - Google ドライブ
1.3.ライブラリのサポートは長く続くか調査
⇒アップデート状況や、掲示板など、直近で動きがあるかどうかで判断。
また、Jacksonはアメリカの会社が作っていることもあって、
Jacksonに決定。
2.変換処理の共通化
ソースフォルダsrcを参照。
ProjectJsonLibrary.zip - Google ドライブ
※その他
・JUnitテスト 入れ子にする方法⇒public static classにする
入れ子構造になっているJUnit4テストの書き方 · GitHub
・なぜMapなのか?
さいしょは独自で作ったBeanクラスに格納して~と考えていたけど、
現場で相談したところ、値を取得するのにMapもBeanも方法は変わらないし、
Beanを作ったり、複数のアプリケーションで持つのは面倒なのでMapでよい。
と。まったくそのとおりだなぁ。。
まぁメリットデメリットあるので、その都度って感じですが。
※その他参考ページ
*Jackson
Java/JSON Jacksonを使ってみる マッピング編 - だちはだ日記
*Gson
第29回 JavaオブジェクトとJSONオブジェクトの変換に便利な「Google Gson」:本格派エンジニアの工具箱|gihyo.jp … 技術評論社