提问者:小点点

我怎么把JSON身体弄到泽西?


泽西岛是否有@Request estBody等效项?

@POST()
@Path("/{itemId}")
@Consumes(MediaType.APPLICATION_JSON)
public void addVote(@PathParam("itemId") Integer itemId, @RequestBody body) {
    voteDAO.create(new Vote(body));
}

我希望能够以某种方式获取已发布的JSON。


共3个答案

匿名用户

您不需要任何注释。唯一没有注释的参数将是请求正文的容器:

@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。