泽西岛是否有@Request estBody
等效项?
@POST()
@Path("/{itemId}")
@Consumes(MediaType.APPLICATION_JSON)
public void addVote(@PathParam("itemId") Integer itemId, @RequestBody body) {
voteDAO.create(new Vote(body));
}
我希望能够以某种方式获取已发布的JSON。
您不需要任何注释。唯一没有注释的参数将是请求正文的容器:
@POST()
@Path("/{itemId}")
@Consumes(MediaType.APPLICATION_JSON)
public void addVote(@PathParam("itemId") Integer itemId, String body) {
voteDAO.create(new Vote(body));
}
或者您可以将主体已经解析为对象:
@POST()
@Path("/{itemId}")
@Consumes(MediaType.APPLICATION_JSON)
public void addVote(@PathParam("itemId") Integer itemId, Vote vote) {
voteDAO.create(vote);
}
@javax.ws.rs.Consumes(javax.ws.rs.core.MediaType.APPLICATION_JSON)
应该已经对您有所帮助,并且必须使用注释标记其余参数,因为它们是不同类型的参数-
@POST()
@Path("/{itemId}")
@Consumes(MediaType.APPLICATION_JSON)
public void addVote(@PathParam("itemId") Integer itemId, <DataType> body) {
voteDAO.create(new Vote(body));
}
如果你想让你的json作为投票对象,那么在你的方法参数中简单地使用@Request estBody投票体,Spring会自动在投票对象中转换你的Json。