java - 在 PUT Restful 服务中使用 JSON 对象

标签 java json rest jaxb jersey

我正在尝试用 Java 实现 RESTful 服务,该服务通过 PUT 请求接收 JSON 对象并自动映射到 Java 对象。我设法用 XML 做到了这一点,但我不能用 JSON 做到这一点。这是我想要做的:

@PUT
@Consumes(MediaType.APPLICATION_XML)
public String putTodo(JAXBElement<Route> r) {
    Route route = r.getValue();
    route.toString();
    System.out.println("Received PUT XML Request");
    return "ok";
}

这可行,但使用 JSON 会类似,但我不能使用 JAXB,可以吗?

@PUT
@Consumes(MediaType.APPLICATION_JSON)
public String putTodo(<WHAT DO I PUT HERE>) {
    Route route = r.getValue();
    route.toString();
    System.out.println("Received PUT JSON Request");
    return "ok";
}

最佳答案

默认情况下,Jersey 将使用 JAXB 通过利用 Jettison 来处理 JSON 消息。图书馆。

因此您可以执行以下操作:

@PUT
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public String putTodo(JAXBElement<Route> r) {
    Route route = r.getValue();
    route.toString();
    System.out.println("Received PUT XML/JSON Request");
    return "ok";
}

有关将 Jettison 与 JAXB 结合使用的更多信息:

关于java - 在 PUT Restful 服务中使用 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5719283/

相关文章:

java - 如何对 JWT Secured Rest API 进行负载测试

java - Apache Camel 脚本问题

java - 正则表达式正则表达式Java字符串

java - JTextArea 不在新行中显示文件内容

php - 如何使用 JSONP 下载客户端 javascript 对象?

android - 添加改造实现依赖项时出现错误gradle [无法从/data/app/打开dex文件]

java - 如何使用 JAX-RS 获取 HTTP header ?

json - 在flutter中访问quicktype JSON对象

ios - 如何只从 JSON 中获取特定值? swift 4

rest - 在 REST 服务上使用空 PUT