猿问

如何在特定方法中取消@jsonIgnore

我有一个域 javabean,一些 bean hvae 有很多带有密码和登录 Ip 的信息,我使用 @jsonIgnore 来过滤我不希望最终用户知道的那个属性。

但是有一个问题,在其他方法中,我使用相同的 javabean 发送回前端,但是现在我需要来自该域的一些属性,无论如何可以在某些特定方法中取消此 @jsonIgnore?

@JsonIgnore

私有字符串地址;

私人整数提取;

但现在我需要 address ,我不能这样做..... 我不想使用 for 循环添加其他对象。


不负相思意
浏览 254回答 1
1回答

Helenr

我认为您正在寻找的是以下概念JsonView:在某些情况下,您希望序列化一组属性,而在其他一些情况下,您希望序列化一组(稍微)不同的属性。检查这个优秀的教程,它解释了一切,甚至是 Spring MVC 的使用。创建类来注释字段:public class Views {    public static class Public {    }    public static class Internal extends Public {    }}注释字段:public class Item {    @JsonView(Views.Public.class)    public int id;    @JsonView(Views.Public.class)    public int drawnum;    @JsonView(Views.Internal.class)    public String address;}在控制器中,如果您只想序列化“公共”属性;@JsonView(Views.Public.class)@RequestMapping("/items/{id}")public Item publicItem(@PathVariable int id) {结果 : {"id":2,"drawnum":5}在另一个控制器中,如果您希望所有属性都被序列化;@JsonView(Views.Internal.class)@RequestMapping("/items/{id}")public Item internalItem(@PathVariable int id) {结果 : {"id":2,"drawnum":5,"address":"My address"}
随时随地看视频慕课网APP

相关分类

Java
我要回答