Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Functions That Create JSON Values

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_ARRAYAGG()将结果集作为单个JSON数组返回,而JSON_OBJECTAGG()将结果集作为单个JSON对象返回。了解更多信息,请见第14.19节,“聚合函数”