前端请求后端数据,后端返回前端的值如果为Null的几种处理方式


后端传给前端的Bean中有的属性为Null怎么处理?

  • 前端向后端请求数据,而返回的Bean中有的属性为Null值,如图
    在这里插入图片描述

一般遇到这种情况,是要尽量避免向前端传Null值的,因为前端对这样的数据处理起来很麻烦,所以一般情况下我们如果字段是非必需的数据,一般选择不返回这条属性,如果是必须的话,一般就返回一个空字符占位。

方法一:直接过滤,选择不返回!

  • 在对象不多的情况下可以选择直接在DTO对象上加上注解,如图
//如果值为Null则不返回该条属性。
     @JsonInclude(JsonInclude.Include.NON_NULL)

在这里插入图片描述

  • 上面那个注释掉的那个注解也可以同样的效果,只不过已经被技术淘汰了!

如果对象太多的话,就需要设置全局变量了,这个时候只需找到配置文件,在里面添加一条记录即可!

#设置全局,Null值不返回到前端
  jackson:
     default-property-inclusion: non_null

在这里插入图片描述

  • 两个方法都可以直接将Null值的属性直接过滤掉!不返回给前端!效果如下,我们可以看到的是orderDtailList对象已经不在了!
    在这里插入图片描述

方法二:返回空字符占位或设置默认值。

当然以上的方法是是直接不返回。但一个项目中不可能所有的Null值都不返回,有的数据即使为Null值,又必须返回的数据,这个时候我们一般就选择返回空占位符,或空符号位!

  • 这个时候我们可以直接为对象设置默认值,例如我的orderDtailList返回的是List ,我就直接给它初始化为ArrayList:

这是我之前的以及返回情况:
在这里插入图片描述
在这里插入图片描述

这是修改过后以及返回情况:
在这里插入图片描述
在这里插入图片描述

  • 可以看到的是我的属性并没有返回Null值,而是返回一个空数组占位符!

如果返回给前端是一个字符串的话,一般就设置个空字符:
如图,我之前没有给msg设置默认值:

在这里插入图片描述
用postman获取数据,可以看到都是返回的值为Null:

在这里插入图片描述

这里我将msg设置默认为空字符,再用postman获取返回值可以看到,msg已经变成了空字符!但这条属性依然存在!
在这里插入图片描述
在这里插入图片描述
声明:本文为作者学习廖师兄实战课程中总结所得,如有贻误,望指正!谢谢!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM