Jersey最初只是JAX-RS标准的实现之一,目前已经成为JavaEE的参考实现Glassfish的组成部分。Jersey本身不提供完整的JSON数据处理及Java对象绑定,而是以Jersey Media扩展模块的形式,集成第三方JSON处理框架的实现。
1. JSON with padding
Jersey唯一提供的对JSON-P的不完整支持。通过@org.glassfish.jersey.server.JSONP和@javax.ws.rs.Produces声明REST资源的方法,表示能够返回JavaScript类型的JSON数据。即资源方法响应将Java对象转换为JSON数据。
当请求的Accept-header是application/javascript时,响应是一个JavaScript回调函数名,函数的调用参数为JSON数据。返回的JavaScript回调函数名默认为"callback"。
@JSONP
@javax.ws.rs.Produces({"application/x-javascript", "application/json"})
2. MOXy,JSON数据与Java对象的绑定的推荐方式,Jersey 2.0默认采用该方式
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>2.27</version>
</dependency>
3. JSON-P