Как экранировать строку для JSON
- Выберите режим: Экранировать, Снять экранирование, JSON в строку или Строку в JSON.
- Введите или вставьте исходные данные — результат появится сразу. При экранировании решите, добавлять ли обрамляющие кавычки и записывать ли не-ASCII символы как
\uXXXX. - Скопируйте результат или нажмите Поменять местами, чтобы выполнить обратную операцию и убедиться, что данные вернулись без изменений.
Escape-последовательности в JSON
| Символ | В экранированном виде |
|---|---|
Двойная кавычка " | \" |
Обратный слеш \ | \\ |
| Перевод строки (новая строка) | \n |
| Возврат каретки | \r |
| Табуляция | \t |
| Возврат на символ (backspace), перевод страницы (form feed) | \b, \f |
| Прочие управляющие символы U+0000–U+001F | \u0000 … \u001f |
| Любой символ (по желанию) | \uXXXX, например é → \u00e9, 😀 → \ud83d\ude00 |
Слеш / (по желанию) | \/ |
Одинарные кавычки в JSON экранировать никогда не нужно, потому что строки JSON всегда заключаются в двойные кавычки.
JSON в виде строки (stringified JSON)
Stringified JSON — это JSON-документ, сохранённый внутри строки JSON: например, поле API вроде "payload": "{\"id\":7}" или JSON, записанный в столбец базы данных, переменную окружения или строку лога. JSON в строку создаёт такую строку из документа; Строку в JSON разворачивает её — даже если она была упакована дважды — и форматирует результат.
- JavaScript:
JSON.stringify(text)экранирует,JSON.parse(literal)снимает экранирование. - Python:
json.dumps(text)иjson.loads(literal). - PHP:
json_encode($text)иjson_decode($literal).
Часто задаваемые вопросы
Какие символы нужно экранировать в JSON?
Только двойную кавычку, обратный слеш и управляющие символы от U+0000 до U+001F, например переносы строк и табуляцию. Всё остальное — включая é, 中 и эмодзи — может встречаться в JSON в кодировке UTF-8 как есть.
Почему я вижу \u0416 вместо буквы «Ж»?
Некоторые программы записывают каждый не-ASCII символ — в том числе кириллицу — как escape-последовательность \uXXXX. Обе формы означают одно и то же; режим «Снять экранирование» превращает такие последовательности обратно в читаемый текст.
Чем экранирование отличается от stringify?
Экранирование превращает любой текст в строковый литерал JSON. Stringify сначала проверяет, что на входе валидный JSON, минифицирует его и только потом экранирует, поэтому в результате получается строка, содержащая JSON-документ.
Можно ли снять экранирование со строки без внешних кавычек?
Да. Вставляйте содержимое как с обрамляющими кавычками, так и без них; случайные неэкранированные кавычки и настоящие переносы строк тоже допускаются.