我知道在大多数编程场景中,当有0个元素时,首选的是空集合为null集合.但是,大多数使用JSON的语言(如JavaScript)会将空列表/对象视为true,将null视为false.例如,这将是true和JavaScript中的对象:
{
"items_in_stock": {"widgets":10, "gadgets": 5}
}
Run Code Online (Sandbox Code Playgroud)
但这也是事实:
{
"items_in_stock": {}
}
Run Code Online (Sandbox Code Playgroud)
这是错误的:
{
"items_in_stock": null
}
Run Code Online (Sandbox Code Playgroud)
JSON的空对象/列表是否有约定?那么数字,布尔值和字符串呢?
Koe*_*ers 63
如果期望的返回类型是数组,则返回空数组是一种很好的编程习惯.这可以确保json的接收器可以立即将值视为一个数组,并且首先不必检查它是否为空.它与空对象({})的方式相同.字符串,布尔值和整数没有"空"形式,因此可以使用空值.
不要相信我的话.在Joshua Blochs出色的书"Effective Java"中,他描述了一些非常好的通用编程实践(通常也适用于其他编程语言).返回空集合而不是空值是其中之一.这是他书中那一部分的链接:http://jtechies.blogspot.nl/2012/07/item-43-return-empty-arrays-or.html
问题是我们是否要区分不同的情况:
"phone" : "" = 值为空
"phone" : null = "phone" 的值尚未设置
如果我们想要区分,我会使用 null 。否则,我们需要添加一个新字段,例如“isAssigned”等。这是一个旧的数据库问题。