我应该为没有数据的json返回null,空对象或空数组吗?

Tec*_*rat 5 jquery json

我发送一个搜索数据库的ajax请求.如果没有找到结果,是否有理由选择退货null,{}[]?一个被认为是"标准"还是"最佳实践"?

Avi*_*ish 13

差异可以忽略不计.

null 是表示"无价值"的常用方法,但您的客户端代码需要明确检查.

如果响应实际上意味着"这里是结果,但它们是空的",[]或者{}可能更合适,只要您匹配非空响应的格式(即,如果客户端期望数组,请不要发送{},反之亦然).

基本上:

  • 如果空结果集是特殊情况并且您想为其编写显式行为,则null看起来更合适.
  • 如果您的客户端需要一个数组(例如它将遍历结果),那么使用[].
  • 如果您的客户端需要键值对的映射(例如,它将循环键或将使用result[someKey]),则使用{}.
  • 如果你的客户端需要一个对象(即它希望结果具有众所周知的属性并且会做类似的事情result.someProperty),那么null比返回一个空对象更好.

或者更清楚:如果客户将结果视为单个值,请使用null.如果客户将其视为列表,请使用[].如果客户将其视为地图,请使用{}.