gpt4 book ai didi

java - Java 中使用 Jersey 的 Hashmap 示例?

转载 作者:行者123 更新时间:2023-12-01 10:57:37 26 4
gpt4 key购买 nike

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

但我似乎只能让它在 Spark 中工作(这是我的 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);
}
});

我只需要一些帮助来编写 Jersey 示例?

您能提供的任何帮助都会很棒

最佳答案

首先,使用 Jersey,您需要注册一个 JsonProvider,以便您可以返回一个对象,并且它将以 JSON 形式为您序列化。您也可以毫不费力地支持 XML。

我个人使用 jackson 。 Jersey 的默认设置是 Moxy,它不支持 map ,并且即使使用简单的列表也会出现“问题”(您需要包装它们),请参阅 this post

使用 Jackson 配置 Jersey:https://jersey.java.net/documentation/latest/media.html#json.jackson

Moxy map 问题:How to return a JSON object from a HashMap with Moxy and Jersey

这是泽西网络服务的工作示例,假设您使用的是 Jackson,则返回 map

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

}

个人注释,当您开始使用 Jersey 时:

我真的很喜欢 Jersey 。但 HK2 存在严重的硬耦合问题。 https://java.net/jira/browse/JERSEY-1933 。这超出了范围,但在选择 JAX-RS 2.0 实现之前您应该了解这意味着什么。在独立的 Web 应用程序中,Jersey 的工作方式就像一个魅力。

关于java - Java 中使用 Jersey 的 Hashmap 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com