@PathParam
您将需要在您的类路径(或任何其他 XML/JSON 到 Map 映射器)中有 Jackson 罐子,出于美学、约定和安全原因,您可能不想在. 您通常将 JSON / XML 对象作为请求正文传递,例如使用 POST / PUT
@POST
@Path("/anypath")
@Consumes({"text/xml", "application/json"})
public User find(HashMap<String, String> map) {
//magic should happen
}
然后只需传递一个内容类型为 application/json 或 text/xml 的 POST / PUT 请求,例如
{
"key1": "value1"
"key2": "value2"
}
如果您在类路径中有正确的 Jackson / Moxy 等映射器,它将java.util.Map
为您完成 JSON / XML 格式到(甚至是 POJO)之间的转换
仅当@Produces
您还打算返回 XML / JSON 时才需要,但由于您期望 XML 或 JSON,那么@Consumes
这里有一个有意义的。
但是,如果您必须在 GET 请求中传递 JSON 对象,例如作为请求参数,请查看以下问题:Convert JSON query parameters to objects with JAX-RS
ps for xml mime 是text/xml
而不是application/xml