一尘不染

JSON中的null与null有什么约定?

json

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

{
    "items_in_stock": {"widgets":10, "gadgets": 5}
}

但这也是事实:

{
    "items_in_stock": {}
}

这是错误的:

{
    "items_in_stock": null
}

是否有关于JSON的空对象/列表的约定?而数字,布尔值和字符串呢?


阅读 216

收藏
2020-07-27

共1个答案

一尘不染

[]如果期望的返回类型是数组,则返回一个空数组是一种良好的编程习惯。这确保json的接收者可以立即将值视为数组,而不必首先检查null。这与使用开闭括号的空对象相同{}

字符串,布尔值和整数没有“空”形式,因此可以使用空值。

这在Joshua Blochs的优秀著作“ Effective
Java”中也得到了解决。他在那里描述了一些非常好的通用编程实践(通常也适用于其他编程语言)。返回空集合而不是null就是其中之一。

这是他那本书的一部分的链接:

http://jtechies.blogspot.nl/2012/07/item-43-return-empty-arrays-
or.html

2020-07-27