精华内容
下载资源
问答
  • @JsonIgnore注解

    万次阅读 2020-03-05 18:23:12
    注解名称:@JsonIgnore 作用:在实体类向前台返回数据时用来忽略不想传递给前台的属性或接口。 Eg:User实体中会有字段password字段,当返回用户信息给前台的时候,当然是不希望将password值也一并返回。所以, 这个...

    注解名称:@JsonIgnore
    作用:在实体类向前台返回数据时用来忽略不想传递给前台的属性或接口。
    Eg:User实体中会有字段password字段,当返回用户信息给前台的时候,当然是不希望将password值也一并返回。所以,
    这个时候可以在password属性上加上注解JsonIgnore或者,
    可以在User类上加上注解JsonIgnoreProperties(value = “{password}”)

    展开全文
  • @JsonIgnore

    2020-03-17 16:04:18
    注解@JsonIgnore的作用是“在实体类向前台返回数据时用来忽略不想传递给前台的属性或接口。” 例如:User实体中有一个字段password,当我们用User实体作为输出类给前端返回用户信息的时候,并不希望将password值也...

    注解@JsonIgnore的作用是“在实体类向前台返回数据时用来忽略不想传递给前台的属性或接口。”


    例如:User实体中有一个字段password,当我们用User实体作为输出类给前端返回用户信息的时候,并不希望将password值也一并返回。这个时候就可以在password属性上加上注解JsonIgnore或者,可以在User类上加上注解@JsonIgnoreProperties(value = "{password}")

    但是,要注意的是,当前端以json格式向后台传password的值,且后台是以实体User接收时,这时候@JsonIgnore会忽略,即不接收password字段的值。若想避免此类情况,建议使用form表单的形式提交参数,而非json格式。

    展开全文
  • Spring Boot程序中@JsonIgnoreProperties与@JsonIgnore基本使用

    万次阅读 多人点赞 2018-11-16 23:33:00
    问题由来: springboot项目中定义了很多类,我们在rest返回中直接返回或者在返回对象中使用这些类,spring已经使用jackson自动帮我们完成这些的to json。...使用@JsonIgnoreProperties、@JsonIgnore、@J...

    问题由来
    springboot项目中定义了很多类,我们在rest返回中直接返回或者在返回对象中使用这些类,spring已经使用jackson自动帮我们完成这些的to json。但是有时候自动转的json内容太多,或者格式不符合我们的期望,因此需要调整类的to json过程,或者说希望自定义类的json过程。

    解决办法
    使用@JsonIgnoreProperties、@JsonIgnore、@JsonFormat。

    @JsonIgnore注解用来忽略某些字段,可以用在变量或者Getter方法上,用在Setter方法时,和变量效果一样。这个注解一般用在我们要忽略的字段上。

    @JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段。这个注解还可以指定要忽略的字段,例如@JsonIgnoreProperties({ “password”, “secretKey” })

    @JsonFormat可以帮我们完成格式转换。例如对于Date类型字段,如果不适用JsonFormat默认在rest返回的是long,如果我们使用@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”),就返回"2018-11-16 22:58:15"

    具体可以参考官方文档
    https://fasterxml.github.io/jackson-annotations/javadoc/2.6/com/fasterxml/jackson/annotation/JsonIgnoreProperties.html

    实际代码
    完整的程序在这里,欢迎加星,fork。
    代码简要说明, User类的fullName 和comment字段会被@JsonIgnoreProperties注解忽略。address字段会被@JsonIgnore注解忽略。regDate会按照@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)进行格式转。

    @Data
    @JsonIgnoreProperties(value = {"fullName", "comment"})
    public class User {
        private String id;
        private String name;
        private String fullName;
        private String comment;
        private String mail;
    
        @JsonIgnore
        private String address;
    
        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
        private Date regDate;
    
        private Date reg2Date;
    }
    

    我们的controller示例代码

        @ApiOperation(value = "按用户id删除", notes="private")
        @ApiImplicitParams({
                @ApiImplicitParam(name = "userId", defaultValue = "2", value = "userID", required = true, dataType = "string", paramType = "path"),
        })
        @DeleteMapping(value = "/users/{userId}", produces = "application/json;charset=UTF-8")
        public User delUser(@PathVariable String userId) {
            User user = (User)userSvc.deleteById(userId);
            log.info("rest del user={} by id={}", user, userId);
            return user;
        }
    

    可以看到返回的对象是User,然后comment、fullName、address属性被忽略了,regDate的格式进行转换。
    在这里插入图片描述

    展开全文
  • json过滤某些属性 之@jsonignore

    万次阅读 多人点赞 2016-08-21 12:18:04
    Jackson相关:使用Jackson相关的注解时一定要注意自己定义的属性命名是否规范。 命名不规范时会失去效果。...如果使用@JsonIgnore注解不起效时请注意一下你的属性名字是否规范1、@JsonIgnoreProperties

    ###Jackson相关:

    使用Jackson相关的注解时一定要注意自己定义的属性命名是否规范。
    命名不规范时会失去效果。(例如Ename ,Eage 为不规范命名。“nameE”,“ageE”为规范命名)我在此处掉坑半个小时。至于命名规范,大家自己搜索。其实不要太奇葩的命名都是可以得。

    如果使用@JsonIgnore注解不起效时请注意一下你的属性名字是否规范

    1、@JsonIgnoreProperties

    此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

    写法将此标签加在model 类的类名上 ,可以多个属性也可以单个属性

    //生成json时将name和age属性过滤
    @JsonIgnoreProperties({"name","age"})
    public class  user {
    private  String name;
    private int age;
    }
     
    

    2、@JsonIgnore

    此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。

    生成json 时不生成age 属性

    public class  user {
    private  String name;
    @JsonIgnore
    private int age;
    }
    

    3、@JsonFormat

    此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = “yyyy-MM-dd HH-mm-ss”)

    4、@JsonSerialize

    此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。

    5、@JsonDeserialize

    此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize

    6、@Transient

    @[email protected]�射,ORM框架将忽略该属性;
    如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@Basic;

    //表示该字段在数据库表中没有

    @Transient
    public int getAge() {
     return 1+1;
    }

    参考:http://www.bubuko.com/infodetail-264724.html

    展开全文
  • @JsonIgnore与 @JsonProperty 组合使用 @JsonIgnore放在get方法上 @JsonProperty放在set方法上 这样可解决比如实体类的password属性,返给前端时被忽略, 而后端接收数据时转换成java对象时,被正常赋给password @...
  • 忽略属性 @JsonIgnore、@JsonIgnoreProperties@JsonIgnore@JsonIgnoreProperties原文链接 @JsonIgnore @JsonIgnore 可用于字段、getters 、setters 上,只要存在 @JsonIgnore 就会完全忽略该属性,序列化和反序列化...
  • @JsonIgnore注解作用

    万次阅读 2019-05-18 15:03:30
    @JsonIgnore注解作用 此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。 此注解用于属性或者方法上(最好是属性上) 生成json 时不生成age 属性 public class user { ...
  • @JsonIgnore注解无效

    2021-04-22 19:59:55
    实体类中的某个大字段不需要序列化,加上@JsonIgnore注解无效。 解决方案 为什么会无效呢。 仔细一看,用的是阿里的fastjson。 但是@JsonIgnore是jackjson的注解,当然无效了。 用阿里的注解即可。 @JSONField...
  • Jackson注解 @JsonIgnore

    2018-10-10 23:11:06
    @JsonIgnore的作用是忽略这个属性不被序列化或者反序列化,不管是作用于get方法,set方法还是field属性字段,都是一样的。 @JsonIgnore private Date birthday; @Test public void testJson7() throws ...
  • @JsonIgnore注解的作用

    2021-06-24 10:00:28
    @JsonIgnore注解的作用 JsonIgnore拆成两个单词,就是Json和Ignore,Ignore的意思是忽略,所以可以简单的翻译一下就是json忽略。 此注解是类的注解,作用是json序列化时将Java bean中的一些属性忽略掉,就是生成序列...
  • @JsonIgnoreProperties、@JsonIgnore、@JsonFormat 详细解释: @JsonIgnore注解用来忽略某些字段,可以用在变量或者Getter方法上,用在Setter方法时,和变量效果一样。这个注解一般用在要忽略的字段上。 @...
  • @JsonIgnore 使用

    2020-06-07 14:57:16
    @JsonIgnore public Collection<? extends GrantedAuthority> getAuthorities() { List<SimpleGrantedAuthority> authorities = new ArrayList<>(roles.size()); for (Ro
  • @JsonIgnore 失效

    2021-06-30 12:14:57
    开发时,遇到多对一的关系,在多的那边添加了@JsonIgnore注解, 但是程序如下报错,出现无限递归第调用的情况。 org.springframework....
  • 问题由来: springboot项目中定义了很多类,我们在rest返回中直接返回或者在返回对象中使用这些类,spring已经使用jackson自动帮我们完成...@JsonIgnore注解用来忽略某些字段,可以用在变量或者Getter方法上,用在Set
  • @JsonIgnore注解 返回 json 字符串时候,忽略该字段, @Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @...
  • @JsonIgnore,@JsonValue,@JsonCreator使用详解
  • jackSon中@JsonIgnore, @JsonIgnoreProperties and @JsonIgnoreType注解使用详解 @JsonIgnore 这个注解是用在字段上,get或者set方法上,效果都是一样的,用来在实体类序列化和反序列化的时候忽略该字段字段。 @...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,649
精华内容 3,059
关键字:

@JsonIgnore