jersey2.x对json的支持有3种,MOXy、JSON-P、Jackson。本文采用的是Jackson实现json字符串的解析与返回。
首先,在pom.xml中添加Jackson的依赖:
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-json-jackson -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.25.1</version>
</dependency>
假如,我们定义一个实体类User
package com.Model;
import java.io.Serializable;
public class User implements Serializable {
public String username;
public String getUsername(){
return this.username;
}
public void setUsername(String username){
this.username = username;
}
}
Jersey 服务的实现如下:
@Path("/UserInfoService")
public class computation {
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public User userAge(User user) {
User user1 = new User();
System.out.println(user.getUsername());
user1.setUsername(user.getUsername());
return user1;
}
}
然后,利用advanced rest client进行测试,请求的地址为:http://localhost:8080/simple-service-webapp/webapi/UserInfoService,发送json格式的数据{"username":"admin"}
jersey解析json字符串时,它会将接收到的json字符串,直接注入到相应的对象(该对象中必须含有请求字符串中的相应字段)中。想要返回json时,只需返回包含相应字段的对象即可,Jersey会自动将其转换为json字符串形式。