我知道在大多数编程场景中,当有 0 个元素时,首选是空集合而不是空集合。但是,大多数使用 JSON 的语言(如 JavaScript)会将空列表/对象视为真,将空列表/对象视为假。例如,这在 JavaScript 中既是 true 也是对象:
{
"items_in_stock": {"widgets":10, "gadgets": 5}
}
但这也是真的:
{
"items_in_stock": {}
}
这是错误的:
{
"items_in_stock": null
}
对于 JSON 的空对象/列表是否有约定?那么数字、 bool 值和字符串呢?
最佳答案
如果预期的返回类型是数组,则返回一个空数组[]
是一种很好的编程习惯。这确保 json 的接收者可以立即将值视为数组,而无需首先检查 null。使用开闭大括号 {}
的空对象也是如此。
字符串、 bool 值和整数没有“空”形式,因此可以使用空值。
Joshua Blochs 的优秀著作《Effective Java》也提到了这一点。他在那里描述了一些非常好的通用编程实践(通常也适用于其他编程语言)。返回空集合而不是 null 就是其中之一。
这是他书中那部分的链接:
http://jtechies.blogspot.nl/2012/07/item-43-return-empty-arrays-or.html
https://stackoverflow.com/questions/9619852/