Экранирование 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.