前端在接收到服务端的值时如何把null的字段给个默认值,有没有好用的第三方库或这种问题好的解决方案?
问题描述
restful开发模式,但是,前端在得到服务端传过来的数据时,很多没给默认值,很多都是null,导致在使用时容易报错,比如字符串.toString()、length等等。
如果每次使用之前,每个字段都判断下是否为null,感觉这种方式效率很低,并且容易遗忘,有没有好的方法可以统一进行处理。
以前做服务端时,序列化之前可以配置一些参数,没有数据时就给设置的默认值,但是这个服务端有时候也忘记配置,或者说他们也不愿意多做这一步,并且完全依赖服务端来做这些事情确实也不太靠谱。前端应该有自己比较好的容错机制。
问题出现的环境背景及自己尝试过哪些方法
原本想着自己写一个公用方法,在请求返回时,判断返回数据类型,如果是是对象这遍历每个属性,判断值,并设置默认属性,不是对象则做其他设置处理。
但是这样每个返回的数据都会被这样处理一遍,感觉效率不是很高。
你期待的结果是什么?实际看到的错误信息又是什么?
期望一个优雅的,效率高的解决方式,如果和我上面说的方式一样,请和我一起等待更好的方式吧,请惜墨!!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
严格来讲,这种问题应该由后台规范数据格式
如果是历史遗留问题,后台不能修改了,只能由前端处理,那么可以用
try...catch...
处理这样就不会出错了
楼主的问题,和我之前回答过的差不多。怎么更好更优雅的做防御编程?可以参考这篇文章 https://segmentfault.com/q/10...。希望对你有点启发~
你如果用的是
axios
的话,可以使用transformResponse。然后按你的想法改返回值。比如返回的json,递归判断是否是null,是改成
''
问题是你前端又不能知道默认值该是
''
还是0
。和后台沟通吧。