2013-05-14

GSON:GSONを使ってJSON形式の出力を直接書きだしてみる

Google はGSONと呼ばれるJSONのJavaライブラリを公開しています。これは、
  • JavaのデータクラスをJSON形式にして出力する
  • JSON形式のデータをJavaのデータクラスに格納する
という使い方が中心ですが、JSONのデータ構造とJavaのデータ構造が異なる時は、直接的にJSON形式でデータを書き出すことも可能です。下記は、サーブレットでの出力の例です。
JsonWriter writer;
try {
writer = new JsonWriter(response.getWriter());
writer.beginObject();
writer.name("user");
writer.beginArray();
for (App app: applist) {
writer.beginObject();
writer.name("name").value(app.user);
writer.name("id").value(app.userid);
writer.endObject();
}
writer.endArray();
writer.endObject();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
わざわざJavaのデータクラスに一旦書き込むよりも上記のようにWriterに対して直接的に書きだすほうが手間がかからないでしょう。なお、書き方については、beginObjectとendObjectで囲まれた範囲が1つのオブジェクト(データ)に相当し、配列の箇所はbeginArrayとendArrayで囲まれた部分になります。

0 件のコメント:

コメントを投稿