Spec-Zone.ru › MySQL 5.7

12.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.

    Определённые специальные символы экранируются с помощью обратных слешей в соответствии с последовательностями экранирования, показанными в таблице 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, используя CAST(value AS JSON); см. Преобразование между значениями JSON и не-JSON для получения дополнительной информации.

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

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

Spec-Zone.ru

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