JavaでJSONデータを変換する方法 - Jacksonを使えば簡単!
  • facebookページ
  • twitterページ
  • 2019.10.30

    JavaでJSONデータを変換する方法 – Jacksonを使えば簡単!

    JSONとは?

    JSONとは、JavaScript Object Notationの略で、JavaScriptのオブジェクトの表記法をベースしたデータ記述言語です。

    JSONは、自由な構造でデータを持たせることができ、XMLのような開始・終了タグを必要としないため、XMLに比べデータ容量が軽量なのが特徴です。

    JavaScriptのオブジェクト表記そのものなので、非同期でJavaScriptと通信を行うWEB APIのデータ形式として、よく採用されています。

    JavaでJSONを扱うときはライブラリが便利

    JavaでもJSONを扱うことができ、後述するJacksonなどのライブラリを用いることで、少ないコードで簡単にJSONデータを操作できます。

    以降の内容で、Jacksonを使ってJavaのクラスをJSONに変換する方法を詳しく紹介します。

    ポテパンダの一言メモ

    Java標準のAPIでもJSONを扱うことはできますが、ライブラリを使う方が便利です。

    JSON構文を少しおさらい

    Javaのサンプルコードを紹介する前に、JSONを知らない方のために、JSONの構文を少し紹介します。
    すでにJSONの構文を知っている方は、この章は読み飛ばしましょう。

    JSONの文法

    中括弧 { … } の中に、「”キー名” : “値”」の形式で記述します。

    JSONで扱えるデータ型

    JSONで扱えるデータ型は、文字列、数値、真偽、配列、オブジェクトで、各データは次のように記述します。

    オブジェクトを入れ子にできる

    JSONは、オブジェクトを入れ子にできます。以下が、オブジェクトを入れ子にした例で、”location”に、緯度・経度を持つオブジェクトを入れ子にしています。

    ポテパンダの一言メモ

    あまりオブジェクトを入れ子にしすぎると、JSONパーサーの解析時間が遅くなったり、場合によっては、入れ子の数の上限によりエラーになることがあります。

    オブジェクトの入れ子の数(階層のレベル)は、可読性も考えて、多くても5つ程度にしておくのが良いでしょう。

    Jacksonを使ってJavaクラスとJSONの変換

    Jackson(ジャクソン)と読みます。

    JacksonはJavaでJSONを扱うメジャーなライブラリです。単純なコードでJavaクラス→JSON、JSON→Javaクラスに変換でき、多くの開発プロジェクトで採用されています。

    Jacksonをライブラリに追加する

    JacksonはJavaの標準APIではなく、外部ライブラリの為、利用するにはライブラリをダウンロードする必要があります。2019年10月時点では、バージョン2.10が最新です。

    ■ Mavenの場合

    Mavenを利用する場合はpom.xmlに以下の依存関係を追加します。

    ■ Gradleの場合

    Gradleを利用する場合は、build.gradleに以下の依存関係を追加します。

    ■ 直接jarファイルをダウンロードする場合

    以下の3つのjarファイルをダウンロードして、Javaのプロジェクトに追加します。

    jackson-core-x.x.x.jar

    http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/

    jackson-databind-x.x.x.jar

    http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/

    jackson-annotations-x.x.x.jar

    http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/

    JavaオブジェクトをJSONに変換する

    ライブラリを追加したら、さっそく使ってみましょう。まず、JavaオブジェクトをJSONに変換する方法を解説します。

    最初に、JSONに変換するJavaのクラスを作成します。

    クラスをJSON文字列に変換する、サンプルコードは以下のようになります。変換にはObjectMapperクラスのwriteValueAsStringメソッドを使用します。

    上のコードを実行すると、コンソールにUserクラスをJSON文字列に変換したものが出力されます。

    ▪️ 実行結果

    JSON文字列からJavaのオブジェクトに変換する

    続いて、JSON文字列 → Javaオブジェクトへ変換する方法を解説します。以下のJSON文字列を、先ほど作成したUserクラスに変換します。

    ▪️ 実行結果

    Jackson以外のJSONライブラリ

    Jackson以外にも、Javaで使えるJSONライブラリには、次のものがあります。GsonはGoogleが開発したJSONライブラリで、Androidアプリの開発でよく用いられています。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE