2013-07-21 76 views
2

我想爲一個對象返回具有不同視圖的不同字段。但它總是返回所有的領域。 我創建3個不同的觀點:在User.java@JsonView如何使用球衣

@XmlRootElement() 
public class User { 

    @JsonView(Views.PublicView.class) 
    private String username; 

    @JsonView(Views.PublicView.class) 
    private String employeeName; 

    @JsonView(Views.ExtendedPublicView.class) 
    private Date birthday; 

    @JsonView(Views.ExtendedPublicView.class) 
    private String mobile; 
} 

public class Views { 
    public static class PublicView { } 
    public static class ExtendedPublicView extends PublicView { } 
    public static class InternalView extends ExtendedPublicView { } 
} 

然後再加入@JsonView到

@POST 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
@Produces(MediaType.APPLICATION_JSON) 
@JsonView(Views.PublicView.class) 
public GenericResponse auth(@FormParam("username") String username, @FormParam("password") String password){ 

} 

回答

1

好吧,我解決這個數天前。 我檢查了當時使用的傑克遜的源代碼,沒有任何關於@json視圖的事情。我記得的那個版本是1.8。* 現在我換一個更新的版本。它的工作原理