12.18.2 创建JSON值的函数

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”来查看这些的描述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值