Google の JSONライブラリ。。。GSON

JSON Java ライブラリは、JSONIC だけではない。
Google に、GSON というのがある。

http://code.google.com/p/google-gson/

JSONIC にちょっと似ているが、encode/decode は、static メソッドではない。

Gson gson = new Gson();
String str = gson.toJson(foo);

Foo f = gson.fromJson(str,Foo.class);

のように使う。

Gson をこのように new 演算子で生成すると、java.util.Date は、JSONIC の場合と異なり
value が、"Nov 15, 2011 10:14:22 AM" のように、Date#toString とも違う書式になる。

任意の書式にする場合、Gson インスタンスを生成する com.google.gson.GsonBuilder に書式設定を任せる。
→書式をセットした GsonBuilder を用意してから Gson を生成する。
JSONIC のように、アノテーションを対象Objectのフィールドに指定するのではない点が変な縛りがなく良い。

例)

GsonBuilder builder = new GsonBuilder();
builder.setDateFormat("yyyy/MM/dd HH:mm:ss");
Gson gson = builder.create();

GsonBuilder を使う癖にした方が良さそう。

GsonBuilder から Gson を作る Provider を Google guice でインジェクトさせても良いかもしれない。
任意に指定できる Provider や、guice の Module などいろいろ考えられる。

Gson を Maven で取得する pom は、

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>1.7.2</version>
</dependency>