Перейти к содержимому
Последнее обновление

JSON_QUOTE

Описание​

Заключает входной строковый параметр в двойные кавычки и экранирует специальные и управляющие символы в строке. Эта функция предназначена прежде всего для преобразования строк в корректные строки JSON.

К специальным символам относятся:

  • Кавычка (")
  • Обратная косая черта (\)
  • Возврат на шаг (\b)
  • Перевод строки (\n)
  • Возврат каретки (\r)
  • Горизонтальная табуляция (\t)

К управляющим символам относятся:

  • CHAR(0) экранируется как \u0000

Синтаксис​

JSON_QUOTE (<str>)

Параметры​

<str>: значение строкового типа, которое нужно заключить в кавычки.

Возвращаемое значение​

Возвращает строку, заключённую в двойные кавычки

Примечания по использованию​

  • Если параметр равен NULL, возвращает NULL.
  • Если параметр содержит символ экранирования (\) + символ, для которого экранирование не предусмотрено, символ экранирования удаляется; см. примеры 4 и 5.

Примеры​

  1. Экранирование двойных кавычек

    select json_quote('I am a "string" that contains double quotes.');
    +------------------------------------------------------------+
    | json_quote('I am a "string" that contains double quotes.') |
    +------------------------------------------------------------+
    | "I am a \"string\" that contains double quotes." |
    +------------------------------------------------------------+
  2. Экранирование специальных символов

    select json_quote("\\ \b \n \r \t");
    +------------------------------+
    | json_quote("\\ \b \n \r \t") |
    +------------------------------+
    | "\\ \b \n \r \t" |
    +------------------------------+
  3. Экранирование управляющего символа

    select json_quote("\0");
    +------------------+
    | json_quote("\0") |
    +------------------+
    | "\u0000" |
    +------------------+
  4. Символ экранирования + символ, для которого экранирование не предусмотрено

    select json_quote("\a");
    +------------------+
    | json_quote("\a") |
    +------------------+
    | "a" |
    +------------------+
  5. Ненулевые непечатаемые символы

    select json_quote("\1");
    +------------------+
    | json_quote("\1") |
    +------------------+
    | "1" |
    +------------------+