Экранирование JSON/ Экранирование · Деэкранирование
Экранирование и деэкранирование JSON-строк — кавычки, переводы строки, табуляция и все управляющие символы.
Обычный текст → строка JSON
Обычный текст
0 символов
Экранированная строка
0 символов
Последовательности экранирования JSON
\\Обратная косая черта\"Двойная кавычка\nНовая строка (LF)\rВозврат каретки (CR)\tТабуляция\fПрогон формы\bЗабой\uXXXXКодовая точка UnicodeЭтот инструмент решил вашу проблему?
Примеры кода
JavaScript
const raw = 'Hello "World"\nLine 2';
const escaped = JSON.stringify(raw).slice(1, -1);
// 'Hello \"World\"\\nLine 2'
const unescaped = JSON.parse('"' + escaped + '"');Python
import json
raw = 'Hello "World"\nLine 2'
escaped = json.dumps(raw)[1:-1]
original = json.loads('"' + escaped + '"')Go
raw := "Hello \"World\"\nLine 2" b, _ := json.Marshal(raw) // string(b) includes outer quotes
Shell (curl)
# Escape for curl:
curl -d '{"msg": "Hello\nWorld"}' ...
# Or use Python:
python3 -c "import json,sys; print(json.dumps(sys.stdin.read()))"Часто задаваемые вопросы
Зачем экранировать JSON-строки?
Спецификация JSON (RFC 8259) требует экранировать специальные символы обратным слешем. Наиболее распространённые: двойные кавычки ("→\"), переводы строки (→\n) и обратные слеши (\→\\).
Какие символы нужно экранировать?
Двойные кавычки ("→\"), обратный слеш (\→\\) и управляющие символы U+0000–U+001F, включая перевод строки (\n), возврат каретки (\r), табуляцию (\t), забой (\b) и прогон формы (\f).
Разница между JSON.stringify и ручным экранированием?
JSON.stringify(str) добавляет кавычки и обрабатывает все экранирования — идеально для полного JSON-значения. Ручное экранирование обрабатывает только содержимое без кавычек, полезно для встраивания текста в существующую JSON-структуру.
Что такое формат \uXXXX?
\uXXXX — это последовательность экранирования Unicode в JSON, где XXXX — шестнадцатеричная кодовая точка из 4 цифр. Например, \u0009 — табуляция, \u4e2d — китайский иероглиф 中.
Как использовать при отладке API?
Типичные случаи: 1) Экранировать многострочный текст перед помещением в JSON-поле. 2) Подготовить JSON-тело для команд curl. 3) Встроить SQL-запросы в тело JSON-запроса.
Разница между экранированием JSON и HTML?
JSON-экранирование использует обратный слеш (\) для символов строки. HTML-экранирование использует сущности (&, <, ") для символов разметки. При встраивании JSON в HTML нужны оба: сначала JSON, затем HTML.