2015-11-04 17 views
0

我目前正在與網絡服務的第一次,我必須寫在澤西使用Maven的不同的Web服務的一些例子,使用Jersey的Java中的Hashmap示例?

但我似乎只能得到它在Spark工作(這是我的火花例如)

//Hashmap Example 
get("add/:num1/:num2", new Route() { 

    @Override 
    public Object handle(Request rqst, Response rspns) throws Exception { 
     rspns.type("application/json"); 

     int num1 = Integer.parseInt(rqst.params(":num1")); 
     int num2 = Integer.parseInt(rqst.params(":num2")); 
     HashMap<String, Integer> map = new HashMap<>(); 
     map.put("result", num1+num2); 
     Gson gson = new Gson(); 
     return gson.toJson(map); 
    } 
}); 

我只是需要一些幫助來寫一個澤西島的例子嗎?

,你可以提供任何幫助將是巨大的

回答

0

想通了自己

//HashMap Example 
@GET 
@Path("add/{num1}/{num2}") 
public String Hashmap(@PathParam("num1") int num1, @PathParam("num2") int num2){ 
      HashMap<String, Integer> map = new HashMap<>(); 
      map.put("result", num1+num2); 
      Gson gson = new Gson(); 
      return gson.toJson(map); 
} 
+0

注意,這就是答案不是因爲你「可以」自己創建Json,而是「你應該」。除此之外,我沒有看到你的解決方案與我的不同。 – Filip

1

首先,你澤西需要註冊一個JSonProvider,這樣就可以返回一個對象,它會被JSON序列爲您服務。您也可以不費力地支持XML。

我個人使用傑克遜。與新澤西默認是莫西,不支持地圖,並且有「問題」,甚至用簡單的列表(你需要用它們)看到this post

配置新澤西州傑克遜:​​

莫西問題與地圖:How to return a JSON object from a HashMap with Moxy and Jersey

這裏的澤西Web服務的工作示例,返回一個地圖,給您使用的傑克遜

@GET 
@Path("add/{num1}/{num2}") 
@Produces(MediaType.APPLICATION_JSON) 
public Response getClubNames(@PathParam("num1") Integer num1, @PathParam("num2") Integer num2) { 

    Map<String, Object> returnMap = new HashMap<String, Object>(); 

    returnMap.put("resultAsString", Integer.toString(num1 + num2)); 
    returnMap.put("resultAsInt", num1 + num2); 

    return Response.status(Response.Status.OK).entity(returnMap).build(); 

} 

個人筆記,當你開始使用球衣號碼:

我真的很喜歡澤西島。但是與HK2存在嚴重的耦合問題。 https://java.net/jira/browse/JERSEY-1933。這超出了範圍,但您應該在選擇JAX-RS 2.0實現之前理解這意味着什麼。在獨立的Web應用程序中,澤西島就像一個魅力。

+0

感謝您的信息,但是這不是安靜是我一直在尋找,我現在已經想通了和下面貼的人需要它 – ClarkPamler93