本节中列出的函数从组件元素组成 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 文档中。
根据表 12.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]" | +-------------------------+
您还可以通过将其他类型的值转换为JSON
使用
;的类型来获取 JSON 值。有关详细信息,
请参阅
在 JSON 和非 JSON 值之间转换。CAST(
value
AS
JSON)
生成 JSON 值的两个聚合函数可用(MySQL 5.7.22 及更高版本)。
JSON_ARRAYAGG()
将结果集作为单个 JSON 数组
JSON_OBJECTAGG()
返回,并将结果集作为单个 JSON 对象返回。有关详细信息,请参阅
第 12.20 节,“聚合函数”。