Последнее обновление
JSON_UNQUOTE
Описание
Эта функция удаляет кавычки из значений JSON и возвращает результат в виде строки. Если параметр равен NULL, возвращает NULL.
К специальным символам относятся:
- Двойная кавычка (
") - Обратная косая черта (
\) - Возврат на шаг (
\b) - Перевод строки (
\n) - Возврат каретки (
\r) - Горизонтальная табуляция (
\t)
К управляющим символам относятся:
CHAR(0)экранируется как\u0000
Синтаксис
JSON_UNQUOTE (<str>)
Параметры
<str>Строка, из которой нужно удалить кавычки.
Возвращаемое значение
Возвращает строку. Особые случаи:
- Если входной параметр равен NULL, возвращает NULL.
- Если входной параметр не является значением, заключённым в двойные кавычки, возвращает само значение.
- Если входной параметр не является строкой, он автоматически преобразуется в строку, после чего возвращается само значение.
Примеры
- Удаление символов экранирования из строк
select json_unquote('"I am a \\"string\\" that contains double quotes."');+--------------------------------------------------------------------+
| json_unquote('"I am a \\"string\\" that contains double quotes."') |
+--------------------------------------------------------------------+
| I am a "string" that contains double quotes. |
+--------------------------------------------------------------------+ - Экранирование специальных символов
select json_unquote('"\\\\ \\b \\n \\r \\t"');+----------------------------------------+
| json_unquote('"\\\\ \\b \\n \\r \\t"') |
+----------------------------------------+
| \
|
+----------------------------------------+Поскольку символы экранирования удаляются, некоторые пробельные символы (перевод строки, возврат на шаг, табуляция и т. д.) будут выведены
- Экранирование управляющего символа
select json_unquote('"\\u0000"');+---------------------------+
| json_unquote('"\\u0000"') |
+---------------------------+
| |
+---------------------------+ - Некорректная строка JSON
select json_unquote('"I am a "string" that contains double quotes."');ERROR 1105 (HY000): errCode = 2, detailMessage = [RUNTIME_ERROR]Invalid JSON text in argument 1 to function json_unquote: "I am a "string" that contains double quotes." - Строка начинается с кавычки, но не заканчивается кавычкой
select json_unquote('"I am a "string" that contains double quotes.');+---------------------------------------------------------------+
| json_unquote('"I am a "string" that contains double quotes.') |
+---------------------------------------------------------------+
| "I am a "string" that contains double quotes. |
+---------------------------------------------------------------+ - Строка заканчивается кавычкой
select json_unquote('I am a "string" that contains double quotes."');+---------------------------------------------------------------+
| json_unquote('I am a "string" that contains double quotes."') |
+---------------------------------------------------------------+
| I am a "string" that contains double quotes." |
+---------------------------------------------------------------+