4

我有一个简单的类叫做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?
}
4

1 回答 1

4

看看杰克逊

ObjectMapper mapper = new ObjectMapper();
Thing impl = mapper.readValue(username, Thing.class);

只要username是有效的 JSON 并映射到Thing,这应该可以工作。

注意:您可能需要注释Thing. 例如,在我的情况下,我必须使用com.fasterxml.jackson.annotation.JsonManagedReference. 但是您可以在 API 文档中阅读有关此注释和其他注释的信息。

于 2013-11-21T19:02:45.200 回答