GSONはJavaオブジェクトとJSONを変換するためのJavaライブラリです。
Googleによって作られたためGSONという名前だそうです。
JavaとJSONを変換するOSSライブラリはいくつかありますが、GSONの特徴はクラスにアノテーションをしなくても良い点にあるそうです。
そのため、自分ではソースコードに手を入れられないようなクラスに対してもJSON変換ができます。
またジェネリクスに対応していないライブラリが多いなかで、GSONはジェネリクスをフルサポートしているようです。
GSONを使ってたサンプルコードを紹介します。
シリアライゼーション(Java→JSON)
以下にようなUserSimpleクラスとそのインスタンスを考えます。
public class UserSimple {
String name;
String email;
int age;
boolean isDeveloper;
}
UserSimple userObject = new UserSimple(
"Norman",
"norman@futurestud.io",
26,
true
);
このインスタンスをJSONに変換するためにはこの様にGSONを使います。
Gson gson = new Gson();
String userJson = gson.toJson(userObject);
以下のJSON文字列が得られます。
{
"age": 26,
"email": "norman@futurestud.io",
"isDeveloper": true,
"name": "Norman"
}
デシリアライゼーション(JSON→Java)
逆にJSNO文字列をJavaオブジェクトにするためにこのようにします。
String userJson = "{'age':26,'email':'norman@futurestud.io','isDeveloper':true,'name':'Norman'}";
Gson gson = new Gson();
UserSimple userObject = gson.fromJson(userJson, UserSimple.class);
アノテーションが不要なため、シリアライゼーションもデシリアライゼーションもとてもシンプルな操作でできることが分かりました。
出展:
https://github.com/google/gson