Google GSON でJSONデータを取扱う

biz-Stream を使用しているJavaアプリケーションと,
他言語で実装されているアプリケーションとの間で
データの受渡しをする場合,JSONを用いると効率的です.

今回は,JSONデータを取り扱うJavaライブラリGoogle GSONを紹介したいと思います.

JSONデータを取り扱うJavaライブラリとしては,Jackson Java JSON-processorが有名ですが,
今回紹介するGSONは,Jacksonに比べ,シンプルな処理で,
JavaオブジェクトとJSONの変換を行うことができるのが特徴です.

《 Javaオブジェクト ==> JSON 変換 》
import java.io.*;
import com.google.gson.*;
import com.google.gson.annotations.*;
import com.google.gson.stream.*;

public class MyGsonTest {
    // Javaオブジェクト定義
    public class MyJsonType {
        // JSON要素名がJavaの変数名規約違反となる場合
        @SerializedName("first-name") private String first_name;
        private String last_name;
        public MyJsonType() {
        }
        public MyJsonType( String fn, String ln) {
            this.first_name = fn;
            this.last_name = ln;
        }
    }

    public static void main( String[] args) {
        // Javaオブジェクト ==> JSON
        MyJsonType mjobj = new MyJsonType("太郎","名刺");
        OutputStreamWriter osw = new OutputStreamWriter( new FileOutputStream("MyJson.json") ));
        JsonWriter jsw = new JsonWriter(osw);
        Gson mygson = new Gson();
        mygson.toJson( mjobj, mjobj.getClass(), jsw );
    }
}

とすると,出力されたJSONファイルの中身は以下のようになります.

《 MyJson.json 》
{"first-name": "太郎", "last_name": "名刺"}

また,以下のJSONファイルを読み込み

《 YourJson.json 》
{"first-name": "花子", "last_name": "ブレイン"}
《 JSON ==> Javaオブジェクト 変換 》
import java.io.*;
import com.google.gson.*;
import com.google.gson.annotations.*;
import com.google.gson.stream.*;

public class MyGsonTest {
    // Javaオブジェクト定義
    public class MyJsonType {
        // JSON要素名がJavaの変数名規約違反となる場合
        @SerializedName("first-name") private String first_name;
        private String last_name;
        public MyJsonType() {
        }
        public MyJsonType( String fn, String ln) {
            this.first_name = fn;
            this.last_name = ln;
        }
    }

    public static void main( String[] args) {
        // JSON ==> Javaオブジェクト
        InputStreamReader isr = new InputStreamReader( new FileInputStream("YourJson.json"));
        JsonReader jsr = new JsonReader( isr );
        Gson mygson = new Gson();
        MyJsonType mjobj = new MyJsonType();
        mjobj = mygson.fromJson( jsr, mjobj.getClass() );
        System.out.println( mjobj );
    }
}

とすると,以下の標準出力が得られます.

《 出力したJavaオブジェクトのデータ 》

{first-name=花子, last_name=ブレイン}

このように,シンプルな処理で,JavaオブジェクトとJSON間の変換処理が実現できます.

biz-Stream詳細情報  biz-Stream資料請求

超高速!!高機能!! Web帳票ソリューション biz-Stream

オンデマンドかつリアルタイムにビジネスドキュメントを生成する帳票ソリューション