12.17.2 Функции создания значений JSON
Функции, перечисленные в этом разделе, формируют значения JSON из составных элементов.
-
Оценивает (возможно, пустой) список значений и возвращает массив 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, обернув её в двойные кавычки и экранировав внутренние кавычки и другие символы, затем возвращает результат как строку
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(; см. Преобразование между значениями JSON и не-JSON для получения дополнительной информации.value AS
JSON)
Доступны две агрегатные функции, генерирующие значения JSON (MySQL 5.7.22 и более поздние версии). JSON_ARRAYAGG() возвращает набор результатов как единый массив JSON, а JSON_OBJECTAGG() возвращает набор результатов как единый объект JSON. Для получения дополнительной информации см. раздел 12.19, «Агрегатные функции».
© 2025 Oracle
Licensed under the GPLv2 License.