# 12.18.2 创建 JSON 值的函数

本节中列出的函数由组件元素组成 JSON 值。

  • JSON_ARRAY([**[, **] ...])

    评估一个(可能为空的)值列表并返回一个包含这些值的 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([*钥匙*, **[, *钥匙*, **] ...])

    评估一个(可能为空的)键值对列表并返回一个包含这些对的 JSON 对象。如果有任何键名,则会发生错误空值或者参数的数量是奇数。

    mysql> SELECT JSON_OBJECT('id', 87, 'name', 'carrot');
    +-----------------------------------------+
    | JSON_OBJECT('id', 87, 'name', 'carrot') |
    +-----------------------------------------+
    | {"id": 87, "name": "carrot"}            |
    +-----------------------------------------+
    
  • JSON_QUOTE(*细绳*)

    通过用双引号字符包装字符串并转义内部引号和其他字符,将字符串引用为 JSON 值,然后将结果作为utf8mb4细绳。退货空值如果参数是空值.

    此函数通常用于生成有效的 JSON 字符串文字以包含在 JSON 文档中。

    根据中所示的转义序列,某些特殊字符使用反斜杠进行转义表 12.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]"             |
    +-------------------------+
    

    您还可以通过将其他类型的值转换为JSON键入使用投掷(*价值* 作为 JSON);看在 JSON 和非 JSON 值之间转换, 了解更多信息。

    有两个生成 JSON 值的聚合函数可用。JSON_ARRAYAGG()将结果集作为单个 JSON 数组返回,并且JSON_OBJECTAGG()将结果集作为单个 JSON 对象返回。有关详细信息,请参阅第 12.20 节,“聚合函数”.