后端写的 api ,返回如下的 json 数据
{"status":0,"data":{"applies":null,"total":"0"},"message":""}
其中 applies
字段返回的类型应该是数组。
但是记录数为0的情况下,为何会返回 null
而不是 []
后者不是更符合规范吗?
还是说后端有不得已的苦衷?
后端写的 api ,返回如下的 json 数据
{"status":0,"data":{"applies":null,"total":"0"},"message":""}
其中 applies
字段返回的类型应该是数组。
但是记录数为0的情况下,为何会返回 null
而不是 []
后者不是更符合规范吗?
还是说后端有不得已的苦衷?
更符合规范……但并不一定是被遵守的。如果你不能控制后端,那你就将取到的数据简单的处理下吧:
javascript
var result = {"status":0,"data":{"applies":null,"total":"0"},"message":""} result.data.applies = result.data.applies || []
自己保证自己代码的健壮性好吧?
每个人都认为前面的人传来的一定是[],那任何一个环节出一点问题,返回null,整体都会挂。
每个人拿数据自己||一个[],那任何一个环节出问题,都不会挂。
applies = return array
如果数组为空的话,那么applies就是null
规则是人定的,也可以这么约定
if(empty(array))
return "empty"
哎,我也经常遇到这样的后端,这时候只能去沟通下,看看他们能不能做下处理,任何时候都不要出现null,这时候是空数组,某一些值的时候可以是空字符串,哪怕没有哪个key我都能接受,最害怕null,,,
6 回答5.4k 阅读✓ 已解决
15 回答7.1k 阅读
4 回答7.5k 阅读
2 回答7.6k 阅读✓ 已解决
2 回答3.4k 阅读✓ 已解决
1 回答9.7k 阅读✓ 已解决
1 回答7.6k 阅读✓ 已解决
这个应该是后端代码不够严谨吧。比如后端可以加一个判断,如果 applies 是一个array,但是没有值,也需要用array,不能使用NULL 等。
测试代码:
输出为: