我发送一个搜索数据库的ajax请求.如果没有找到结果,是否有理由选择返回null,{}或[]?一个被认为是“标准”还是“最佳实践”? 差异可以忽略不计. null是表示“无值”的常用方法,但您
null是表示“无值”的常用方法,但您的客户端代码需要明确检查.
如果响应实际上意味着“这里是结果,但它们是空的”,[]或{}可能更合适,只要您匹配非空响应的格式(即,如果客户端期望数组,不发送{},反之亦然).
基本上:
>如果空结果集是特殊情况并且您想为其编写显式行为,则null似乎更合适.
>如果您的客户端需要一个数组(例如它将遍历结果),则使用[].
>如果您的客户端需要键值对的映射(例如,它将循环键或将使用result [someKey]),则使用{}.
>如果您的客户端需要单个对象(即它希望结果具有众所周知的属性并且将执行类似result.someProperty的操作),则null优于返回空对象.
或者更清楚:如果客户端将结果视为单个值,请使用null.如果客户将其视为列表,请使用[].如果客户将其视为地图,请使用{}.