第四章 文档数据库 (DocDB) 简介 - JSON 特殊值

JSON 特殊值

JSON 特殊值只能在 JSON 对象和 JSON 数组中使用。它们与相应的 ObjectScript 特殊值不同。 JSON 特殊值不带引号指定(引号内的相同值是普通数据值)。它们可以用大写和小写字母的任意组合指定;它们全部存储为小写字母。

  • JSON 通过使用 null 特殊值来表示值的缺失。由于文档数据库通常不包含键:值对,除非存在实际值,因此 null 仅在特殊情况下使用,例如预期值的占位符。下面的示例显示了 null 的这种用法:
  SET jsonobj = {"name":"Fred","spouse":null}
  WRITE jsonobj.%ToJSON()
  • JSON 使用 truefalse 特殊值表示布尔值。布尔值的这种用法如以下示例所示:
  SET jsonobj = {"name":"Fred","married":false}
  WRITE jsonobj.%ToJSON()

ObjectScript 使用 01 指定布尔值。(实际上“true”可以用 1 或任何非零数字表示。)这些值在 JSON 文档中不支持作为布尔值。

在一些特殊情况下,JSON 使用括号来阐明语法:

  • 如果定义名称为 nulltruefalse 的局部变量,则必须在 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()
02-19 19:11