ライブラリを使う!JavaでJSONを扱う方法【初心者向け】

初心者向けにJavaでJSONを扱う方法について解説しています。JSONを扱う上で便利なライブラリを使って説明しています。JSONはプログラミングの様々なところで使われているので、実際に書きながら理解していきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

この記事では、JavaでJSONを扱う方法について解説しています。

JSONファイルを扱う上で便利なライブラリを使って説明しているので、ぜひ書き方を参考にしてみてください。

 

なお本記事は、TechAcademyのJava講座の内容をもとに作成しています。

 

田島悠介

今回はJavaでJSONを扱う方法について勉強してみようか。

大石ゆかり

田島メンター!JSONというのは何ですか~?

田島悠介

JavaScript Object Notationの略で、軽量で汎用性のあるデータフォーマットのひとつなんだ。詳しく見ていくよ。

大石ゆかり

はい!

JSONとは

JSONとはJavaScript Object Notationの略で、軽量のデータ交換フォーマットです。

人間にとって読み書き容易で、機械(コンピュータ)にとっても解析しやすい型式です。

特にJavaScript言語との親和性が良いですが、Java含む他のプログラミング言語でも頻繁に利用されています。

JavaでJSONを扱うため、2つの便利なライブラリがあります。

  1. Gson
  2. Jackson

この記事では前者のGsonを使います。

 

Gsonライブラリのインストール

以下の手順で、EclipseでGsonライブラリを使えるように設定します。

1. Gsonのサイトからgson-2.8.2.jarファイルをダウンロードします。
2. Eclipseでダウンロードしたjarファイルへの参照を追加します。
3. ビルドパスの編集画面を開きます。

4. “Add JARs”を選択します。

5. gson-2.8.2.jarを選択します。

6. gson-2.8.2.jarが追加されたことを確認します。

 

[PR] Javaで挫折しない学習方法を動画で公開中

JavaでのJSONの使い方

はじめにGsonライブラリをインポートします。

import com.google.gson.Gson;

次にGsonクラスのインスタンスを作成します。

Gsonクラスには、以下2つのメソッドが用意されています。

  1. toJson: JavaオブジェクトをJSON文字列に変換する
  2. fromJson: JSON文字列をJavaオブジェクトに変換する

例えば、String型の配列をJSON文字列に変換し、再度、逆変換してみます。

Gson gson = new Gson();
String [] stringArray = {"alpha", "bravo", "charlie"};		

// JavaオブジェクトをJSON文字列に変換する
String jstr = gson.toJson(stringArray);

// JSON文字列をJavaオブジェクトに変換する
stringArray = gson.fromJson(jstr, String[].class);

 

田島悠介

Gsonライブラリのインストール方法と、基本の使い方についてだね。

大石ゆかり

GsonクラスでJavaオブジェクトとJSONを相互変換できるんですね。

田島悠介

そうだね。次は実際に両方の変換を実行してみよう。

実際に書いてみよう

自作のPersonクラスの配列を作成します。上で作成した配列をJSON文字列に変換します。

JSON文字列を再度、Personクラスの配列に戻します。

ソースコード

import com.google.gson.Gson;

public class JsonDemo {

  public static void main(String[] args) {
    // Personクラスの配列を作成する
    Person[] persons = { new Person("alpha", 10), new Person("bravo", 20) };
    
    Gson gson = new Gson();
    
    // Personクラスの配列を、JSON文字列に変換する
    String jstr = gson.toJson(persons, Person[].class);
    System.out.println(jstr);

    // JSON文字列を、Personクラスの配列に変換する
    persons = gson.fromJson(jstr, Person[].class);
    for (Person p : persons) {
      System.out.println(p);
    }
  }
}

class Person {
  private String name;
  private int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  public String toString() {
    return "name=" + name + ", age=" + age;
  }
}

 

実行結果

[{"name":"alpha","age":10},{"name":"bravo","age":20}]
name=alpha, age=10
name=bravo, age=20

 

解説

まず、Personクラスの配列personsを作成します。

続いて、Gsonクラス、toJsonメソッドで、JSON文字列に変換し、表示します。

Gsonクラス、fromJsonメソッドで、Personクラスの配列に戻します。配列の要素を1個ずつ表示します。

 

以上、JavaでJSONを扱う方法について解説しました。

入門向けJavaの学習サイトもまとめているので、合わせてご覧ください。

 

田島悠介

Gsonによって相互の変換処理を行った例になるよ。

大石ゆかり

toJsonメソッドを使うとJavaオブジェクト→JSONに、fromJsonメソッドで逆の変換を行うわけですね。

田島悠介

JSONはデータベースに関する操作を行うときに役立つので、一連の書き方を覚えておこう。

大石ゆかり

分かりました。ありがとうございます!

また、オンラインのプログラミングスクールTechAcademyでは、Java講座を開催しています。

JavaやServletの技術を使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

この記事を監修してくれた方

橋本紘希(はしもとこうき)
システムインテグレータ企業勤務のシステムエンジニア

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。