我有一个名为Thing
public class Thing {
private int id
private String name
//getters, setters, constructor
}
我想发送一个带有效负载的请求并处理它。
请求看起来像这样:
curl -i -d '{"thing": {"id": 11, "name": "foobar"}}' http://localhost:8080/thing/{username}
但我无法弄清楚如何处理json请求。这就是我的方法:
@Path("/thing/{username}")
@POST
public Thing add(@PathParam("username") String username) {
//how can I process the JSON payload sent and convert it to Thing object?
}
答案 0 :(得分:4)
查看Jackson。
ObjectMapper mapper = new ObjectMapper();
Thing impl = mapper.readValue(username, Thing.class);
只要username
是有效的JSON并映射到Thing
,这就行了。
注意:您可能需要注释Thing
的类成员或方法。例如,在我的情况下,我必须使用com.fasterxml.jackson.annotation.JsonManagedReference
来管理循环引用。但您可以在API文档中阅读有关此内容和其他注释的内容。