Java中使用Jersey的Hashmap示例?

Java中使用Jersey的Hashmap示例?,java,web-services,maven,jersey,Java,Web Services,Maven,Jersey,我目前第一次使用web服务,我必须使用Maven在Jersey编写一些不同web服务的示例 但我似乎只能让它在Spark中工作(这是我的Spark示例) //Hashmap示例 获取(“添加/:num1/:num2”,新路由(){ @凌驾 公共对象句柄(请求rqst、响应rspns)引发异常{ rspns.type(“应用程序/json”); int num1=Integer.parseInt(rqst.params(“:num1”); int num2=Integer.parseInt(rqs

我目前第一次使用web服务,我必须使用Maven在Jersey编写一些不同web服务的示例

但我似乎只能让它在Spark中工作(这是我的Spark示例)

//Hashmap示例
获取(“添加/:num1/:num2”,新路由(){
@凌驾
公共对象句柄(请求rqst、响应rspns)引发异常{
rspns.type(“应用程序/json”);
int num1=Integer.parseInt(rqst.params(“:num1”);
int num2=Integer.parseInt(rqst.params(“:num2”);
HashMap=newHashMap();
map.put(“结果”,num1+num2);
Gson Gson=新的Gson();
返回gson.toJson(map);
}
});
我只是需要一些帮助来写一个新泽西的例子


您可以提供的任何帮助都非常好,首先,对于Jersey,您需要注册一个JSonProvider,这样您就可以返回一个对象,并将其序列化为JSON。您也可以不费吹灰之力就支持XML

就我个人而言,我使用杰克逊。Jersey的默认设置是Moxy,它不支持贴图,即使使用简单的列表也会有“问题”(您需要包装它们),请参见

使用Jackson配置Jersey:

Moxy问题与地图:

下面是Jersey web服务的一个工作示例,如果您使用Jackson,则返回地图

@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();

}
@GET
@路径(“add/{num1}/{num2}”)
@产生(MediaType.APPLICATION_JSON)
公共响应getClubNames(@PathParam(“num1”)整数num1,@PathParam(“num2”)整数num2){
Map returnMap=newhashmap();
returnMap.put(“resultAsString”,Integer.toString(num1+num2));
returnMap.put(“resultAsInt”,num1+num2);
return Response.status(Response.status.OK).entity(returnMap.build();
}
个人注意事项,当您开始使用运动衫时:

我真的很喜欢球衣。但HK2存在严重的硬耦合问题。这超出了范围,但在选择JAX-RS2.0实现之前,您应该了解这意味着什么。在一个独立的Web应用程序中,Jersey工作起来很有魅力。

我自己就知道了

//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);
}
//HashMap示例
@得到
@路径(“add/{num1}/{num2}”)
公共字符串哈希映射(@PathParam(“num1”)int num1,@PathParam(“num2”)int num2){
HashMap=newHashMap();
map.put(“结果”,num1+num2);
Gson Gson=新的Gson();
返回gson.toJson(map);
}

感谢您提供的信息,但这并不是我想要的,我现在已经找到了答案,并在下面为需要它的人发布了答案。请注意,这并不是因为您“可以”自己创建Json,而是因为您“应该”创建Json。除此之外,我看不出你的解决方案和我的有什么不同。
//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);
}