Spec-Zone.ru › MySQL 8.4

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]"             |
    +-------------------------+
    

Вы также можете получить значения JSON, преобразовав значения других типов к типу JSON, используя CAST(value AS JSON); см. Преобразование между JSON и значениями, не являющимися JSON для получения дополнительной информации.

Доступны две агрегатные функции, генерирующие значения JSON. JSON_ARRAYAGG() возвращает набор результатов как один массив JSON, а JSON_OBJECTAGG() возвращает набор результатов как один объект JSON. Дополнительная информация приведена в разделе 14.19 «Агрегатные функции».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/json-creation-functions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API