客户端/浏览器向我的rest资源发出JSON请求(请求的内容类型是application/json,并且相应的REST方法被@Consumes("application/json")注释).
@Path("/process-something")
@POST
@Produces("application/json")
@Consumes("application/json")
@HandleDefaultExceptions
public AResponse processSomething(List<Long>) {
}
Run Code Online (Sandbox Code Playgroud)
JSON主体由一些简单类型组成,如List<Long>或String.
是否有一种简单的可能性来注入JSON参数只是以某种方式注释它,类似于请求@FormParam的情况application/x-www-form-urlencoded?我想要一些比使用Jackson ObjectMapper或Jettison 解码JSON字符串更简单的解决方案JSONObject.
您可以创建一个反映 JSON 对象的数据模型的 Java 类,并使用 JAXB 的 @XmlRootElement 对其进行注释。您可以使用 @XmlElement 注释将属性映射到自定义 JSON 键名称,例如:
@XmlRootElement
public class MyJSONOject{
@XmlElement(name="json-key-name")
public String attribute;
}
Run Code Online (Sandbox Code Playgroud)
然后 Jersey 可以透明地为您解码 JSON 对象,瞧!
@Path("/process-something")
@POST
@Produces("application/json")
@Consumes("application/json")
public AResponse processSomething(MyJSONOject json) {
log.fine(json.attribute);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13988 次 |
| 最近记录: |