5

クライアント/ブラウザーは、残りのリソースに対して JSON 要求を行います (要求のコンテンツ タイプはapplication/json、対応する REST メソッドに@Consumes("application/json")注釈が付けられます)。

@Path("/process-something")
@POST
@Produces("application/json")
@Consumes("application/json")
@HandleDefaultExceptions
public AResponse processSomething(List<Long>) {

}

JSON 本体は、 や などのいくつかの単純な型で構成されList<Long>ますString

リクエスト@FormParamの場合と同様に、何らかの形で注釈を付けるだけでJSONパラメータを注入する簡単な可能性はありますか? application/x-www-form-urlencodedJSON文字列をJacksonObjectMapperまたはJettisonのJSONObject.

4

2 に答える 2

4

JSON オブジェクトのデータ モデルを反映する Java クラスを作成し、JAXB の @XmlRootElement で注釈を付けることができます。@XmlElement アノテーションを使用して、属性をカスタム JSON キー名にマップできます。次に例を示します。

@XmlRootElement
public class MyJSONOject{
    @XmlElement(name="json-key-name")
    public String attribute;
}

その後、Jersey は JSON オブジェクトを透過的にデコードできます。

@Path("/process-something")
@POST
@Produces("application/json")
@Consumes("application/json")
public AResponse processSomething(MyJSONOject json) {
    log.fine(json.attribute);
}
于 2013-07-31T20:58:39.237 に答える
1

このドキュメントによると、リクエストからパラメーターを抽出するために使用される 6 つのパラメーターベースの注釈があり、JSON パラメーター用のアノテーションはないようです。

于 2013-07-31T13:03:06.673 に答える