//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);
}
});
首先,使用Jersey您需要注册一个JSonProvider,这样您就可以返回一个对象,并且它将在JSON中为您序列化。您也可以不费力地支持XML。
我个人使用杰克逊。Jersey的默认值是Moxy,它不支持地图,即使是简单的列表也有“问题”(您需要将它们包装起来)参见本文
使用Jackson配置Jersey:https://Jersey.java.net/documentation/latest/media.html#json.Jackson
这里有一个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();
}
个人提示,当你开始使用泽西时:
我真的很喜欢泽西。但与HK2存在严重的硬耦合问题。https://java.net/jira/browse/jersey-1933。这超出了范围,但在选择JAX-RS2.0实现之前,您应该理解这意味着什么。在一个独立的Web应用程序中,Jersey就像一个魅力一样工作。
我用泽西岛写了一个非常简单的例子。我从泽西岛网站下载了最新的jar文件到WEB-INF的lib文件夹中。我的课程和在下面。 当我提供URL我得到。 然而,当我使用Maven时,它是有效的。我用的是Eclipse开普勒,Glassfish 4服务器,Java 7。 非Maven版本我做错了什么? 谢谢。 类: Web.xml:
问题内容: 我在Moxy上使用Jersey 2.17,并且具有以下功能: User.preferences是一个。 除了将a 转换为: “ preferences”:{“ entry”:[{“ key”:{“ type”:“ string”,“ value”:“ language”},“ value”:{“ type”:“ string”,“ value”: “ en”}},{“ key”:{“
我正在使用泽西2.17和Moxy,我有如下功能: user.preferences是。 “首选项”:{“entry”:[{“key”:{“type”:“string”,“value”:“language”},“value”:{“type”:“string”,“value”:“en”}},{“key”:{“type”:“string”,“value”:“country”},“value”:“coun
问题内容: 我试图从XSD架构生成一些Java类。我确切地知道我想用Java生成什么,并且我正在尝试编写相应的XSD模式。 我需要代表一个java.util.HashMap(HashMap)。我找不到如何在XSD模式(或xjb绑定文件)中指定想要Java中的HasMap的方法。它总是生成一个列表。 在这里我要生成的代码 我已经试过了: 但是它仍然继续生成mapEntry的java.util.Lis
我有一个名为的模型是用JSON编写的。在另一个类中,我将此模型设置为HashMap的键。 现在我有了一个方法,我需要检查值是否为false,返回模型(这是HashMap的关键)。这是代码,但它返回NULL。