MySQL 8.3 Release Notes
本节列出的函数从组件元素组成 JSON 值。
-
评估一个可能为空的值列表,并返回包含这些值的 JSON 数组。
mysql> SELECT JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME()); +---------------------------------------------+ | JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME()) | +---------------------------------------------+ | [1, "abc", null, true, "11:30:24.000000"] | +---------------------------------------------+
-
JSON_OBJECT([
键
,值
[,键
,值
] ...])评估一个可能为空的键值对列表,并返回包含这些对的 JSON 对象。如果任何键名为
NULL
或参数数量为奇数,将发生错误。mysql> SELECT JSON_OBJECT('id', 87, 'name', 'carrot'); +-----------------------------------------+ | JSON_OBJECT('id', 87, 'name', 'carrot') | +-----------------------------------------+ | {"id": 87, "name": "carrot"} | +-----------------------------------------+
-
将字符串作为 JSON 值进行引用,通过将其包装在双引号字符中,并对内部引号和其他字符进行转义,然后将结果作为
utf8mb4
字符串返回。如果参数为NULL
,则返回NULL
。通常情况下,该函数用于在 JSON 文档中生成有效的 JSON 字符串文字。
某些特殊字符将根据 表 14.23,“JSON_UNQUOTE() 特殊字符转义序列” 中所示的转义序列进行转义。
mysql> SELECT JSON_QUOTE('null'), JSON_QUOTE('"null"'); +--------------------+----------------------+ | JSON_QUOTE('null') | JSON_QUOTE('"null"') | +--------------------+----------------------+ | "null" | "\"null\"" | +--------------------+----------------------+ mysql> SELECT JSON_QUOTE('[1, 2, 3]'); +-------------------------+ | JSON_QUOTE('[1, 2, 3]') | +-------------------------+ | "[1, 2, 3]" | +-------------------------+
您还可以通过使用 CAST(
将其他类型的值转换为 JSON 类型;请参阅 在 JSON 和非 JSON 值之间转换,以获取更多信息。值
AS JSON)
两个聚合函数生成 JSON 值可用。JSON_ARRAYAGG()
将结果集作为单个 JSON 数组返回,而 JSON_OBJECTAGG()
将结果集作为单个 JSON 对象返回。有关更多信息,请参阅 第 14.19 节,“聚合函数”。