JAX-RS を Jersey と Jackson 使ってやるなら

1/22 はカレーの日です!

Jersey そのままで JSON の出力をすると int でも引用符に囲まれた文字列の "0" になるし、要素が 1 つの時リストじゃなくなるしと残念なので、Jackson を使う。

Jackson のバージョン違いや設定方法の変更の影響でググるととにかくたくさん情報が出てくるのだけれど、いまの時点ではとにかく Jackson2 を使うため pom.xml

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.2.3</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.2.3</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.2.3</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.jaxrs</groupId>
    <artifactId>jackson-jaxrs-json-provider</artifactId>
    <version>2.2.3</version>
</dependency>

と書けば web.xml さわらなくても Jackson が使えて、Jersey の JSON 出力も Jackson 利用に変わるので設定すっきり。