Jackson @JsonView註解自定義返回POJO類的字段

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對象中,定義了IDViewIDANdNameView兩個字段組合,然後在@Controller的方法上使用同樣的@JsonView註解,該方法就會返回指定組合的字段。同時,User對象中的IDAndNameView繼承於IDView,所以在方法上使用@JsonView(IDAndNameView)註解會同時返回User對象中IDView組合中的字段。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章