JAX-RSでJsonを返す

はじめに

JAX-RSで

1@Path("test")
2@GET
3public Map hoge(){
4    Map<String, String> data = new HashMap<>();
5    data.put("key", "value");
6    return data;
7}

とかしたい時の話

依存性の追加

jersey-serverとjersey-jsonを追加する
追加してからメニューの実行->プロジェクトをビルド(F11)する
pom.xmlに追記するか依存性の追加から

 1<dependency>
 2    <groupId>com.sun.jersey</groupId>
 3    <artifactId>jersey-server</artifactId>
 4    <version>1.8</version>
 5</dependency>
 6<dependency>
 7    <groupId>com.sun.jersey</groupId>
 8    <artifactId>jersey-json</artifactId>
 9    <version>1.8</version>
10</dependency>

コード

冒頭と同じだけど

WebApplication.java

1import javax.ws.rs.ApplicationPath;
2import javax.ws.rs.core.Application;
3
4@ApplicationPath("/api")
5public class WebApplication extends Application {
6}

Hoge.java

 1@Path("/")
 2public class Hoge {
 3    @Path("test")
 4    @GET
 5    public Map hoge(){
 6        Map<String, String> data = new HashMap<>();
 7        data.put("key", "value");
 8        return data;
 9    }
10}

してテスト おわり