当前位置: 首页 > 知识库问答 >
问题:

Java中使用Jersey的Hashmap示例?

夹谷茂
2023-03-14
//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);
    }
});

共有1个答案

傅峻
2023-03-14

首先,使用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。