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