0

ジャージでは、Java Beanはリクエスト本文内から自動逆シリアル化できますが、特別な型を作成せずにパラメータを読み取りたい場合はどうなりますか。注釈を使用してこれを行うことは可能ですか?

私の現在のコードは次のとおりです。

public class RequestData {
    String param;
}

...

public Response readData(RequestData data) {
    data.getParam();
    ...
}

私はそれを次のようなものにしたい:

public Response readData(@RequestParam("param") String param) {
    ...
}

入力JSONがまだクリアされていない場合は、次のようになります。

{
    "param":"some value"
}
4

2 に答える 2

0

これを行うには、Jersey に String をそのまま (注釈に従って) 渡させ、Jackson ObjectMapper(Jersey が JSON バインディングのために内部で使用するもの)を使用してデータバインドします。

Map<String,Object> map = objectMapper.readValue(param, Map.class);

にアクセスするObjectMapperには、リソース クラスで JAX-RS インジェクション アノテーション (@Contextと思いますか?) を使用できます。

@Context
private ObjectMapper objectMapper;
于 2013-02-06T18:43:22.423 に答える
0

入力 JSON のタイプは、区別Map<String, String>されていない入力が必要な場合は、それをリクエスト パラメータとして使用し、必要な値を読み取ることができます。

@RequestParam本文ではなくリクエストパラメータを見ることに注意してください。

于 2013-02-06T15:02:37.153 に答える