我知道在大多数编程方案中,当元素为0时,首选是将空集合改为空集合。但是,大多数使用JSON的语言(如JavaScript)会将空列表/对象视为true,将空列表/对象视为false。例如,这既是true也是JavaScript中的对象:

{
    "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

07-26 07:58