MySQL 8.4 Release Notes
14.17.2 创建 JSON 值的函数
本节中列出的函数将组成 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([
key
,val
[,key
,val
] ...])评估可能为空的键值对列表,并返回包含这些对的 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值之间的转换,了解更多信息。value
AS JSON)
有两个聚合函数可以生成JSON值。JSON_ARRAYAGG()
将结果集作为单个JSON数组返回,而JSON_OBJECTAGG()
将结果集作为单个JSON对象返回。了解更多信息,请见第14.19节,“聚合函数”。