javascript - JSON 中空与空的约定是什么?

我知道在大多数编程场景中,当有 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/

相关文章:

javascript - JSON 架构 : "allof" with "additionalPro

python - 在 json 中发送 NaN

php - 使用 PHP 创建 REST API

json - jq 条件输出

jquery - 如何使用 JQuery 将数据放入 Rails

java - 不支持 Spring Rest POST Json RequestBody 内容类型

jquery - JSON解析错误语法错误意外结束输入

json - 将 JSON 序列化为查询字符串的标准化方法?

javascript - 'JSON' 是 Internet Explorer 中 JavaScri

json - 从 HttpServletRequest 检索 JSON 对象文字