美文网首页SpringBoot极简教程 · Spring Boot
Spring Boot项目配置接口返回实体字段为Null不显示

Spring Boot项目配置接口返回实体字段为Null不显示

作者: zhangweisep | 来源:发表于2020-03-27 10:59 被阅读0次

    首先我们先来看一下对比效果
    未配置Null值不显示:

    {
        "success": true,
        "code": "1000",
        "error": "执行成功",
        "data": [
            {
                "id": "58f9dfe411884b928830717ee06c",
                "createBy": null,
                "createTime": null,
                "updateBy": null,
                "updateTime": null,
                "delFlag": null,
                "remark": null,
                "pretensionId": null,
                "holeNum": "测试数据",
                "elongationTheory": null,
                "elongationReal": null,
                "elongationError": null,
                "status": null
            }
        ]
    }
    

    配置了不显示Null值之后:

    {
        "success": true,
        "code": "1000",
        "error": "执行成功",
        "data": [
            {
                "id": "58f9dfe411884b928830717ee06c",
                "holeNum": "测试数据"
            }
        ]
    }
    

    要想实现这种效果有三种方式
    (个人总结,如有不对还望指正,如有其它方式还请留言,万分感谢)

    1. 在yml文件中配置null值验证
    2. 配置JacksonConfig 类配置null值验证
    3. 使用注解的方式配置null值验证
    网上关于1、2两种null值验证方式的资料很多,这里偷懒就不写了,请自行查阅

    这边简单说一下使用注解的方式配置null值验证

    注解验证也有两种方式

    1. 使用@JsonSerialize注解
    2. 使用@JsonInclude注解

    @JsonSerialize是早期使用的注解,目前已经过时了
    com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion已经被 com.fasterxml.jackson.annotation.JsonInclude代替。
    所以@JsonSerialize已经被弃用了
    目前使用的是@JsonInclude注解
    @JsonInclude(JsonInclude.Include.NON_NULL)
    Include有七个枚举值

    ALWAYS,//该值指示始终包含该属性
    NON_NULL,//属性为NULL 不序列化,就是为null的字段不参加序列化    
    NON_ABSENT,// 属性为默认值不序列化
    NON_EMPTY,//属性为 空("") 或者为 NULL 都不序列化,则返回的json是没有这个字段的。这样对移动端会更省流量
    NON_DEFAULT,
    CUSTOM,//该值指示单独的“筛选器”对象
    USE_DEFAULTS;//伪值,用于指示更高级别的默认值
    

    一般会用到NON_NULL和NON_EMPTY
    这个注解可以使用在类和字段上,来达到精准控制字段值的规则

    相关文章

      网友评论

        本文标题:Spring Boot项目配置接口返回实体字段为Null不显示

        本文链接:https://www.haomeiwen.com/subject/cwakuhtx.html