Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのGsonライブラリを使ってJavaオブジェクトをJSONに変換する方法

Gsonは、Googleが開発したJava向けのJSONライブラリです。Gsonを利用することで、JSONの生成はもちろん、BeanやJavaオブジェクトを簡単にJSONオブジェクトへ変換できます。JavaオブジェクトをJSON文字列に変換するには、Gsonクラスが提供するtoJson()メソッドを呼び出すだけです。

toJson()メソッドの構文

public java.lang.String toJson(java.lang.Object src)

引数には変換元となる任意のJavaオブジェクトを渡し、戻り値としてそのオブジェクトをシリアライズしたJSON形式の文字列が返されます。Gsonは内部でリフレクションを使用するため、対象クラスに特別なアノテーションを実装する必要はありません。

サンプルコード

import com.google.gson.Gson;

public class ConvertJavaObjectToJSONTest {
    public static void main(String[] args) {
        // Gsonインスタンスを生成
        Gson gson = new Gson();
        Student student = new Student("Raja", "Ramesh", 30, "Hyderabad");
        // toJson()メソッドでJavaオブジェクトをJSONに変換
        System.out.println(gson.toJson(student));
    }
}

// Studentクラス(Bean)
class Student {
    private String firstName;
    private String lastName;
    private int age;
    private String address;

    public Student(String firstName, String lastName, int age, String address) {
        super();
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
        this.address = address;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student[ " +
                " firstName = " + firstName +
                ", lastName = " + lastName +
                ", age = " + age +
                ", address = " + address +
                " ]";
    }
}

実行結果

{"firstName":"Raja","lastName":"Ramesh","age":30,"address":"Hyderabad"}

ポイント解説

  • Gsonインスタンスの生成: new Gson() でGsonオブジェクトを作成します。スレッドセーフであるため、使い回しが可能です。
  • フィールド名がそのままキーになる: 特に設定しない場合、クラスのフィールド名がJSONのキーとして出力されます。
  • nullの扱い: デフォルトではnullのフィールドは出力されません。GsonBuilderserializeNulls() を使うとnullも含めて出力できます。
  • 依存関係の追加: Mavenプロジェクトの場合、com.google.code.gson:gson をpom.xmlに追加するだけで利用できます。

このように、Gsonを使えば数行のコードでJavaオブジェクトとJSONの相互変換が実現でき、REST APIの開発などでも広く活用されています。

  1. 【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法

    GsonライブラリとはGsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。この記事では、Gsonクラスが提供するtoJson()メソッドを

  2. JavaでJSON文字列をJSONオブジェクトに変換する方法を徹底解説

    JSONとはJSON(JavaScript Object Notation)は、データの転送や保存に広く利用されている軽量なデータ交換フォーマットです。人間にとって読み書きしやすく、機械にとっても解析が容易なため、Web APIや設定ファイルなど、さまざまな場面で採用されています。JSONObjectとJSONArrayの役割JSONObjectクラスは、文字列からテキストを解析して、Mapのようなオブジェクトを生成します。このオブジェクトには、内容を操作するためのメソッドや、JSON仕様に準拠したオブジェクトのシリアライズを生成するメソッドが用意されています。一方、JSONArrayクラスは