我正在尝试用 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/