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

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

Gsonは、Googleが開発したJava向けのJSONライブラリです。Gsonを使用することで、JavaオブジェクトからJSONを生成したり、その逆にJSONをJavaオブジェクトへ変換したりすることができます。

JSONオブジェクトをJavaオブジェクトに変換(デシリアライズ)するには、GsonクラスのfromJson()メソッドを呼び出します。このメソッドは、JSON文字列とターゲットとなるクラスを引数に受け取り、対応するJavaオブジェクトを返します。

構文

public <T> fromJson(java.lang.String json, java.lang.Class<T> classOfT) throws JsonSyntaxException

第一引数には変換元のJSON文字列を、第二引数にはマッピング先のクラスのClassオブジェクトを指定します。JSONの形式が不正な場合はJsonSyntaxExceptionがスローされる点に注意してください。

使用例

以下の例では、JSON文字列「{'name':'raja','age':25}」をEmpクラスのオブジェクトに変換しています。

import com.google.gson.*;

public class JSONtoJavaObjTest {
   public static void main(String[] args) {
      Gson gson = new Gson();
      Emp emp = gson.fromJson("{'name':'raja','age':25}", Emp.class);
      System.out.println(emp.getName());
      System.out.println(emp.getAge());
   }
}

// Empクラス
class Emp {
   String name;
   int age;

   public Emp() {
      super();
   }

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

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public int getAge() {
      return age;
   }

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

実行結果

raja
25

ポイント

  • デシリアライズの対象となるクラス(この例ではEmpクラス)には、引数なしのコンストラクタが必要です。Gsonがリフレクションを使ってインスタンスを生成するためです。
  • JSONのキー名(name、age)は、クラスのフィールド名と一致している必要があります。一致しない場合は@SerializedNameアノテーションでマッピングを定義できます。
  • 依存関係を追加するには、Mavenであれば「com.google.code.gson:gson」をpom.xmlに記述します。
  1. 【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法

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

  2. JavaオブジェクトをJSONに変換する方法(Jackson・Gsonの使い方)

    このチュートリアルでは、JavaオブジェクトをJSON形式に変換する方法を、定番ライブラリであるJacksonとGsonの2つを使って解説します。 サンプルとして使用するのは、ごく標準的なPOJO(Plain Old Java Object)であるPersonクラスです。Personオブジェクトを作成したら、それぞれのライブラリを使ってJSONへ変換してみましょう。 Person.java import java.util.List; import java.util.Map; public class Person { String name; Integer age;