Экранирование JSON
Экранируйте любой текст или JSON в корректный строковый литерал JSON прямо в браузере. Обрабатывает кавычки, переводы строк, табуляции, Unicode и слэши. 100% приватно, без загрузки, мгновенно.
Опции
Что такое экранирование JSON?
Экранирование JSON — это процесс преобразования сырой строки в форму, безопасную для встраивания внутрь JSON-документа. В JSON есть небольшой набор символов, несущих структурный смысл — двойная кавычка ограничивает строки, обратный слэш начинает escape-последовательность — плюс управляющие символы (переводы строк, табуляции), которым нельзя буквально появляться внутри строки. Экранирование заменяет каждый из них безопасной двухсимвольной последовательностью (\", \\, \n, \t) или Unicode-экранированием \uXXXX, поэтому результирующая строка чисто парсится где угодно.
К экранированию JSON прибегают чаще, чем может показаться. Самый частый случай — JSON-в-JSON: конверт вебхука, полезная нагрузка очереди сообщений или журнал аудита хранит тело запроса как строковое поле, а значит, внутренний JSON должен быть экранирован перед присвоением. Другой — ручное создание JSON-конфигурации: вставка многострочного shell-скрипта, SQL-запроса или фрагмента кода в одно значение JSON требует превращения каждого перевода строки в \n. Третий — построение тел REST-запросов вручную в инструментах вроде curl, где строку JSON в кавычках нужно экранировать, чтобы она пережила оболочку и слой HTTP.
У этого инструмента три отличия от наивного экранировщика. Во-первых, он построен на точных правилах спецификации JSON — той же логике, что использует совместимый сериализатор — поэтому вывод проходит обратное преобразование без потерь: экранируйте здесь, парсите где угодно, получайте свои байты обратно. Во-вторых, опциональный ASCII-безопасный режим преобразует каждый не-ASCII-символ (включая астральные эмодзи, обрабатываемые как суррогатные пары) в \uXXXX для систем, которым нельзя доверить UTF-8. В-третьих, всё работает на 100% в вашем браузере — ваши нагрузки, которые часто содержат PII, токены и секреты, никогда не касаются сервера. Чтобы обратить процесс, используйте наш инструмент Деэкранирование JSON; чтобы сначала проверить JSON, смотрите Форматтер JSON.
// Input text
She said "hi"
then left.
// Escaped (Wrap on) — identical to JSON.stringify(input)
"She said \"hi\"\nthen left."
// Escaped (Wrap off) — just the body, for hand-built JSON
She said \"hi\"\nthen left.
// JSON-in-JSON
{"a":1} -> "{\"a\":1}" -> {"payload": "{\"a\":1}"} Ключевые возможности
Экранирование по спецификации
Построено на точных правилах спецификации JSON — кавычки, обратные слэши, переводы строк, табуляции, возвраты каретки и управляющие символы экранируются идентично совместимому сериализатору. Вывод проходит обратное преобразование без потерь через любой парсер JSON.
Вывод с кавычками или без
«Заключить в кавычки» включено даёт полный строковый литерал JSON (как JSON.stringify); выключено даёт только экранированное тело — для случая, когда вы сами набираете кавычки в JSON-документе, создаваемом вручную.
ASCII-безопасный режим \uXXXX
Опционально преобразует каждый символ выше U+007F в Unicode-экранирование, при этом астральные символы вроде эмодзи обрабатываются как корректные суррогатные пары. Вывод — чистый ASCII, безопасный для устаревших конвейеров, неправильно обрабатывающих UTF-8.
HTML-безопасное экранирование слэша
«Экранировать прямой слэш» превращает / в \/, нейтрализуя последовательность </script>, чтобы JSON можно было встроить внутрь HTML-тега <script>, не закрывая его преждевременно. Выключено по умолчанию для чистого вывода во всех остальных случаях.
Swap для проверки обратного преобразования
Одна кнопка «Поменять направление» переключает в режим деэкранирования на месте и подаёт вывод обратно как ввод, поэтому можно подтвердить, что экранирование → деэкранирование возвращает исходный текст побайтово, перед отправкой.
100% приватность в браузере
Всё экранирование выполняется на стороне клиента — ваши нагрузки (PII, токены, секреты) никогда не покидают браузер. Проверьте это во вкладке «Сеть»: ноль запросов при вставке. Единственный безопасный способ экранировать конфиденциальные данные в онлайн-инструменте.
Примеры
Вложить JSON внутрь JSON (JSON-в-JSON)
{"event":"signup","user":{"id":42,"name":"Alice"}} Экранируйте этот объект, чтобы он мог существовать как строковое значение внутри другого JSON-документа — например, поле полезной нагрузки вебхука или конверт сообщения Kafka. С включённой опцией «Заключить в кавычки» вывод готов к вставке сразу после двоеточия.
Многострочный фрагмент кода в поле конфигурации
function greet(name) {
return `Hello, ${name}!`;
} Превратите многострочную JS-функцию в однострочную строку JSON. Переводы строк становятся \n, а шаблон с обратными кавычками остаётся неизменным — вставьте его в значение JSON-конфигурации, не ломая файл.
Текст с кавычками и табуляциями
She said "hello" then left.
Двойные кавычки экранируются в \", а табуляция становится \t, поэтому строку безопасно вставить в любой парсер JSON, строку лога или тело REST-запроса.
ASCII-безопасный вывод для устаревших систем
Price: 9.99€ — café société
Включите «Экранировать не-ASCII», чтобы преобразовать € и буквы с диакритикой в \uXXXX. Результат — чистый ASCII, безопасный для систем, которые искажают UTF-8 при передаче.
Как использовать
- 1
Вставьте текст или JSON
Введите или вставьте что угодно в поле ввода — JSON-объект, фрагмент кода, строку лога или обычный текст. Экранированный результат появится мгновенно. Нажмите «Загрузить пример», чтобы попробовать образец, например полезную нагрузку JSON-в-JSON или многострочную функцию.
- 2
Выберите опции экранирования
Оставьте «Заключить в кавычки» включённой для полного строкового литерала JSON (как JSON.stringify) или выключите, чтобы получить только экранированное тело. Включите «Экранировать не-ASCII» для чистого ASCII-вывода \uXXXX и «Экранировать прямой слэш» при встраивании JSON в HTML-тег <script>.
- 3
Скопируйте экранированную строку
Нажмите «Копировать», чтобы забрать результат, готовый к вставке в JSON-документ, тело REST-запроса или файл конфигурации. Нажмите «Поменять направление», чтобы переключиться в режим деэкранирования и проверить обратное преобразование без потерь.
Частые ошибки экранирования
Двойное экранирование (экранирование уже экранированного текста)
Двойной запуск экранирования превращает \n в \\n, а \" в \\\", поэтому потребитель видит литеральный обратный слэш-n вместо перевода строки. Обычно это происходит, когда текст уже был экранирован выше по конвейеру. Сначала деэкранируйте («Поменять направление»), чтобы проверить, затем экранируйте ровно один раз.
Input already escaped: line1\nline2 Escaped again -> line1\\nline2 (literal backslash-n)
Raw input: line1 line2 Escaped once -> line1\nline2 (real newline encoded)
Забыли окружающие кавычки
С выключенной опцией кавычек вы получаете только экранированное тело, а не полную строку JSON. Вставка её прямо туда, где ожидается значение, даёт некорректный JSON, потому что кавычек не хватает. Либо держите кавычки включёнными, либо убедитесь, что набираете их сами.
{"msg": hello \"world\"}
// Missing quotes around the value -> invalid JSON {"msg": "hello \"world\""}
// Wrap on supplies the quotes -> valid JSON Излишнее экранирование не-ASCII без необходимости
Включение «Экранировать не-ASCII», когда потребитель прекрасно обрабатывает UTF-8, просто раздувает вывод и вредит читаемости — café становится caf\u00e9 без причины. Оставляйте опцию выключенной, если конкретная устаревшая система не требует чистого ASCII.
café -> caf\u00e9 (no downstream need; just noise)
café -> café (valid JSON, readable, smaller)
Частые сценарии использования
- Полезные нагрузки вебхуков JSON-в-JSON
- Экранируйте тело запроса, чтобы оно могло храниться как строковое поле внутри конверта вебхука, сообщения Kafka или журнала аудита. Оставьте «Заключить в кавычки» включённым — и вывод готов к присвоению ключу во внешнем документе.
- Многострочные фрагменты в конфигурации
- Превратите многострочный shell-скрипт, SQL-запрос или фрагмент кода в одно строковое значение JSON. Каждый перевод строки становится \n, поэтому файл JSON-конфигурации остаётся корректным в одну строку.
- Ручное создание тел REST-запросов
- Экранируйте строку JSON перед вставкой в аргумент curl --data или HTTP-клиент, чтобы кавычки и переводы строк пережили оболочку и канал передачи, не сломав запрос.
- Безопасное для логов кодирование строк
- Экранируйте пользовательский контент перед записью в структурированную строку лога, предотвращая порчу формата лога или нижестоящего парсера JSON-логов внедрёнными кавычками или переводами строк.
- Интеграции с устаревшими ASCII-системами
- Создавайте чистый ASCII-вывод \uXXXX для SOAP-шлюзов, заголовков email или старых систем, искажающих UTF-8 при передаче, оставаясь при этом полностью декодируемым любым современным парсером JSON.
- Встраивание JSON в HTML
- Экранируйте прямые слэши, чтобы блок JSON можно было встроить прямо внутрь тега <script> для страниц с серверным рендерингом, не давая </script> внутри данных закрыть тег раньше времени.
Технические детали
- Алгоритм экранирования
- Инструмент сериализует ваш ввод по строковым правилам спецификации JSON: U+0022 (") → \", U+005C (\) → \\, U+0008 → \b, U+000C → \f, U+000A → \n, U+000D → \r, U+0009 → \t, а любой другой символ ниже U+0020 → \u00XX. С включёнными кавычками окружающие двойные кавычки включаются; с выключенными они убираются. Это в точности совпадает с выводом совместимого сериализатора, гарантируя обратное преобразование без потерь.
- Unicode и суррогатные пары
- По умолчанию символы выше U+007F выводятся как литеральный UTF-8, что JSON разрешает. С включённой опцией «Экранировать не-ASCII» каждый такой символ преобразуется в \uXXXX по его кодовой единице UTF-16; символы вне базовой многоязычной плоскости (эмодзи, редкие письменности) кодируются как суррогатная пара из двух экранирований \uXXXX — например, 😀 (U+1F600) становится \ud83d\ude00, то же представление, что выдаёт сериализатор JSON.
- Прямой слэш и контекст HTML
- JSON не требует экранирования /, поэтому по умолчанию он сохраняется. При включённой опции «Экранировать прямой слэш» каждый / становится \/. Единственная практическая причина так делать — встраивание в HTML: внутри тега <script> буквальная подстрока </script> закрывает тег независимо от контекста JSON, поэтому экранирование слэша в <\/script> сохраняет встроенный JSON неповреждённым, оставаясь корректным по спецификации.
Лучшие практики
- Держите кавычки включёнными для полных литералов
- Когда нужно значение для присвоения в коде или вставки после двоеточия в JSON, держите «Заключить в кавычки» включённым — вывод представляет собой полную, парсируемую строку JSON, идентичную JSON.stringify. Выключайте только тогда, когда вы сами набираете окружающие кавычки.
- Оставляйте Unicode-экранирование выключенным, если не требуется
- Чистый UTF-8 — корректный JSON и гораздо читаемее. Включайте «Экранировать не-ASCII» только для конкретной нижестоящей системы, неправильно обрабатывающей UTF-8 (устаревший SOAP, некоторые конвейеры логов, исходные файлы только в ASCII). Экранирование всего по умолчанию просто делает вывод более зашумлённым.
- Экранируйте слэши только для встраивания в HTML
- Экранирование прямого слэша имеет значение ровно в одном месте: JSON, встроенный в HTML-тег <script>. Вне этого контекста оно добавляет мусор без пользы, поэтому оставляйте его выключенным для тел REST, файлов конфигурации и полезных нагрузок сообщений.
- Проверяйте обратное преобразование с помощью Swap
- Перед отправкой экранированных данных в конвейер нажмите «Поменять направление», чтобы деэкранировать их и убедиться, что вы получаете исходный текст обратно. Это ловит случайное двойное экранирование — частый источник появления \\n там, где имелось в виду \n. Обратить в любой момент можно нашим инструментом Деэкранирование JSON.
Часто задаваемые вопросы
Что делает этот инструмент экранирования JSON?
В чём разница между экранированием JSON и JSON stringify?
Загружаются ли мои данные куда-либо?
Когда нужна опция \uXXXX (экранировать не-ASCII)?
Как вложить JSON-объект внутрь другой строки JSON (JSON-в-JSON)?
Что делает опция «Экранировать прямой слэш» (\/)?
Корректно ли обрабатываются переводы строк, табуляции и управляющие символы?
Похожие инструменты
Все инструменты →Base64 декодер и кодировщик
Кодирование и форматирование
Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.
Конвертер Base64 в изображение
Кодирование и форматирование
Декодируйте строку Base64 или data URI обратно в изображение прямо в браузере. Предпросмотр, размеры и MIME, затем скачивание как PNG, JPG, GIF, SVG. Без загрузки.
Конвертер CSV в JSON
Кодирование и форматирование
Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.
Конвертер HTML в Markdown
Кодирование и форматирование
Конвертируйте HTML в чистый Markdown прямо в браузере — GFM-таблицы, списки задач и ссылки. Выбирайте ATX/Setext заголовки и inline или reference ссылки. Удобно для переноса веб-контента и подачи в LLM. 100% приватно.
Конвертер изображений в Base64
Кодирование и форматирование
Кодируйте изображения в data URI Base64 прямо в браузере — PNG, JPG, GIF, WebP, SVG, ICO. Копируйте вывод для HTML, CSS, Markdown и JSON. 100% приватно, без загрузки.
JSON Diff и сравнение
Кодирование и форматирование
Сравнивайте два JSON-файла мгновенно в браузере. Side-by-side подсветка, вывод JSON Patch (RFC 6902), игнорирование шума вроде timestamp и ID. 100% приватно, без загрузки.