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字元串形式。