第四章 文档数据库 (DocDB) 简介 - JSON 特殊值
JSON 特殊值
JSON 特殊值只能在 JSON 对象和 JSON 数组中使用。它们与相应的 ObjectScript 特殊值不同。 JSON 特殊值不带引号指定(引号内的相同值是普通数据值)。它们可以用大写和小写字母的任意组合指定;它们全部存储为小写字母。
JSON通过使用null特殊值来表示值的缺失。由于文档数据库通常不包含键:值对,除非存在实际值,因此null仅在特殊情况下使用,例如预期值的占位符。下面的示例显示了null的这种用法:
SET jsonobj = {"name":"Fred","spouse":null}
WRITE jsonobj.%ToJSON()
JSON使用true和false特殊值表示布尔值。布尔值的这种用法如以下示例所示:
SET jsonobj = {"name":"Fred","married":false}
WRITE jsonobj.%ToJSON()
ObjectScript 使用 0 和 1 指定布尔值。(实际上“true”可以用 1 或任何非零数字表示。)这些值在 JSON 文档中不支持作为布尔值。
在一些特殊情况下,JSON 使用括号来阐明语法:
- 如果定义名称为
null、true或false的局部变量,则必须在JSON中使用括号以将其视为局部变量而不是JSON特殊值。下面的示例显示了这一点:
SET true=1
SET jsonobj = {"bool":true,"notbool":(true)}
WRITE jsonobj.%ToJSON()
- 如果在表达式中使用
ObjectScript Follows运算符 (]),则必须在JSON中使用括号以将其视为此运算符,而不是视为JSON数组终止符。在以下示例中,表达式b]a测试b是否在排序规则序列中位于a之后,并返回ObjectScript布尔值。以下表达式必须括在括号中:
SET a="a",b="b"
SET jsonarray=[(b]a)]
WRITE jsonarray.%ToJSON()