第四章 文档数据库 (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()