创建JSON值的函数
本节中列出的功能由组件元素组成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)
通过将字符串用双引号引起来并转义内部引号和其他字符来将
utf8mb4
字符串引为JSON值,然后将结果作为字符串返回。NULL
如果参数为,则返回NULL
。此函数通常用于生成有效的JSON字符串文字,以包含在JSON文档中。
根据表“ 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值的聚合函数。JSON_ARRAYAGG()
以单个JSON数组的形式JSON_OBJECTAGG()
返回结果集,并以单个JSON对象的形式返回结果集。有关更多信息,请参见“聚合(GROUP BY)函数”。