后端为什么会返回null?

我是做移动端的,后端经常会返回null,但是这个null对前端很不友好,容易造成崩溃,这个问题跟后端讨论多次,感觉他们也不好处理。

我想知道为什么后台会返回null?而不是直接返回对应数据类型的默认值,比如 Int 对应 0,String 对应 ""。

我以前写sqlite的时候发现字段的默认值就是null,难道这就是后台返回null的原因?

这个null到底该哪端处理?还是两端都做处理?

还有就是,如果后台返回null,前端崩溃了,这个锅到底哪个背?

阅读 8.4k
3 个回答

这个问题我认为需要后端处理,因为mysql查询无数据会出现null的情况,所以需要后端处理null''(空字符){}(空对象)[](空数组)0(数据0)等等。
当然了,前端也是需要做数据异常处理的。比如你在赋值的时候可以这么写。这样对大家都好。

axios.get(xxx).then(res => {
  //假设res.data 返回的是数组
  leit data = res.data || []
  //假设res.data 返回的是对象
  leit data = res.data || {}
  //假设res.data 返回的是字符串
  leit data = res.data || ''
})
阿里巴巴《 Java 开发手册》
image.png

没做过移动端,但是感觉null处理应该是ui框架非常基本的功能
或者不显示内容,或者显示默认值,这种逻辑在客户端做判断和处理更方便更灵活

后端解决不了就前端解决 总要有一方解决 别想着分锅了。积极解决问题, 反正我这边前端团队原则都是 能自己解决就自己解决 不行在协商

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题