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

时间:2014-04-10 19:30:58

标签: jquery json

我发送了一个搜索数据库的ajax请求。如果未找到结果,是否有理由选择返回null{}[]?是否考虑过#34;标准"或者"最佳实践"?

1 个答案:

答案 0 :(得分:7)

差异可以忽略不计。

null是表示"没有值"的通常方式,但您的客户端代码需要明确检查。

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

基本上:

  • 如果空结果集是特殊情况并且您想为其编写显式行为,null似乎更合适。
  • 如果您的客户需要数组(例如,它会遍历结果),请使用[]
  • 如果您的客户需要地图键值对(例如,它会循环显示键或将使用result[someKey]),请使用{}
  • 如果您的客户需要一个对象(即它希望结果具有众所周知的属性并且会执行result.someProperty之类的操作),那么null优于null返回一个空对象。

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