文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  创建 JSON 值的函数

14.17.2 创建 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)

    通过用双引号字符包裹字符串并转义内部引号和其他字符,将其作为 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(value AS JSON) 将其他类型的值强制转换为 JSON 类型来获取 JSON 值;有关更多信息,请参阅 在 JSON 和非 JSON 值之间转换

可以使用两个生成 JSON 值的聚合函数。JSON_ARRAYAGG() 将结果集作为单个 JSON 数组返回,而 JSON_OBJECTAGG() 将结果集作为单个 JSON 对象返回。有关更多信息,请参阅 第 14.19 节,“聚合函数”