12.18.2 创建JSON值的函数
源文档路径:MySQL :: MySQL 5.7 Reference Manual :: 12.18.2 Functions That Create JSON Values
这部分列出的函数是用来从组件元素组成JSON对象的。
JSON_ARRAY([val
[, val
] …])
计算一个列表(可能为空)的值,并返回包含这些值得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_QUOTE(string
)
通过用双引号字符包装字符串并转义内部引号和其他字符,将字符串作为JSON值引用,然后将结果作为”utf8mb4“字符串返回。如果参数为”NULL“,则返回”NULL“。
此函数通常用于生成有效的JSON字符串文本,以包含在JSON文档中。
根据Table 12.23, “JSON_UNQUOTE() Special Character Escape Sequences”所示的转义序列,某些特殊字符用反斜杠转义。
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值,通过使用CAST(value
AS JSON)函数;浏览 Converting between JSON and non-JSON values获取更多信息。
MySQL 5.7.22和以后的版本支持两种聚合JSON函数用来生成JSON值。JSON_ARRAYAGG()
返回单个JSON数组的结果集,JSON_OBJECTAGG()
返回单个JSON对象的结果集,浏览Section 12.20, “Aggregate Functions”来查看这些的描述。