java - 从 JAX-RS 中的 JSON 请求获取简单的 JSON 参数

标签 java json jax-rs

客户端/浏览器向我的 rest 资源发出 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 .

是否有一种简单的可能性来注入(inject) JSON 参数,只是以某种方式对其进行注释,类似于 @FormParamapplication/x-www-form-urlencoded 的情况下要求? 我想要一些比使用 Jackson 的 ObjectMapper 解码 JSON 字符串更简单的解决方案。或 Jettison 的 JSONObject .

最佳答案

您可以创建一个 Java 类来反射(reflect)您的 JSON 对象的数据模型,并使用 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);
}

关于java - 从 JAX-RS 中的 JSON 请求获取简单的 JSON 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17970969/

相关文章:

javascript - AngularJS NG-重复 : How to repeat a data inside an ng-repeat that has to filter unique values

python - Django休息框架: Generate a unique obfuscated ID from ID field

java - 动态响应格式依赖于 Jersey 的查询参数?

java - 多线程和匿名类和对象

Java:淘汰旧,进新

jquery - 使用 jQuery 嵌套无序列表的对象

jersey - 在 weblogic 上升级 jax-rs 共享库

java - 模拟函数在指定 return 后返回 null

java - 使用自定义适配器将 XML 中的数据解析为列表

java - 以 '/' 结尾的 Web 服务 URL 之间的差异