web-dev-qa-db-ja.com

ジャージーでJSON本文を取得するにはどうすればよいですか?

ありますか @RequestBodyジャージーで同等ですか?

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

POSTされたJSONをなんとかしてフェッチできるようにしたい。

7

注釈は必要ありません。アノテーションのない唯一のパラメーターは、リクエスト本文のコンテナーになります。

@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);
}
15
Lukasz Wiktor
@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));
}
1
Naman