Jackson在Spring框架中可以用來將數據以JSON的格式返回給客戶端,@JsonView
註解可以作用在POJO類的屬性上,用來自定義返回的類的字段,比如一個用戶類,有時只需要返回ID,有時卻需要返回ID和姓名:
public class User {
public interface IDView {};
public interface IDAndNameView extends IDView {};
@JsonView(IDView.class)
private Integer ID;
@JsonView(IDAndNameView.class)
private String name;
}
在定義的@Controller
裏面可以這樣使用:
@JsonView(User.IDView.class)
@RequestMapping("/id")
public @ResponseBody User getUserID() {
User user = new User;
user.setID(1);
user.setName("Sj");
return user;
}
以上代碼只會返回User對象的ID屬性。@JsonView
可以定義一個需要返回字段的組合。在User對象中,定義了IDView
和IDANdNameView
兩個字段組合,然後在@Controller
的方法上使用同樣的@JsonView
註解,該方法就會返回指定組合的字段。同時,User對象中的IDAndNameView
繼承於IDView
,所以在方法上使用@JsonView(IDAndNameView)
註解會同時返回User對象中IDView
組合中的字段。