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 に答える