БлогУслугиКарьера
Обсудить проект
БлогУслугиКарьераОбсудить проект
Инструменты

Кавычки и перенос строки в JSON: как экранировать текст

Примеры экранирования кавычек, переносов строки и обратной косой черты в JSON. Сериализация объекта и поиск двойного кодирования.

Редакция Feature IT
Редакция Feature IT·
6 окт
·
2 мин
·
Текстовая лента проходит между кавычками и знаками экранирования

В строке JSON внутреннюю двойную кавычку нужно экранировать обратной косой чертой, а перенос строки записывать специальной последовательностью. Если вставить обычный перенос прямо между кавычками, строгий разбор JSON завершится ошибкой.

Проверить готовую запись можно в JSON-форматтере. Он покажет, читается ли документ, но не угадает, какой текст вы хотели передать.

Кавычки внутри значения

Пусть нужно отправить фразу с названием курса в прямых кавычках. Корректная запись выглядит так:

{ "text": "Запись на курс \"Керамика\" открыта" }

После разбора значение поля содержит обычные двойные кавычки вокруг названия. Обратные косые черты служат обозначением в JSON и не становятся дополнительными буквами сообщения.

Русские кавычки «ёлочки» можно записать в строке непосредственно. Однако замена кавычек не решает все задачи: если исходный текст должен сохраняться точно, меняйте способ сериализации, а не содержимое.

Перенос строки и обратная косая черта

Для текста из двух строк используйте \n:

{ "text": "Первая строка\nВторая строка" }

Для самой обратной косой черты нужно удвоение:

{ "path": "C:\\Temp\\report.txt" }

Запись JSON и значение после разбора выглядят по-разному. Если вы видите \n в исходном документе, это ещё не означает, что пользователь получит две видимые буквы. Смотрите, на каком этапе находится текст: до разбора или после него.

Проверьте синтаксис JSON

Вставьте обезличенный пример, чтобы найти ошибку и отформатировать данные.

Проверить JSON

Лучше поручить сборку библиотеке

В JavaScript создайте обычный объект и вызовите сериализацию:

const payload = {
  text: 'Запись на курс "Керамика" открыта\nНачало в субботу',
};
const body = JSON.stringify(payload);

В этом примере строковое значение содержит кавычки и перенос, а JSON.stringify формирует корректное представление для передачи. Ручная склейка строк становится хрупкой, как только в пользовательском вводе появляется неожиданный знак.

Правила строковых значений определены в стандарте JSON, RFC 8259. Не переносите правила кавычек из JavaScript на JSON без проверки: это разные форматы записи.

Как заметить двойное кодирование

Если после одного разбора вы получили строку с текстом JSON вместо ожидаемого объекта, данные могли сериализовать дважды. Проверьте контракт API и тип результата. Не добавляйте второй JSON.parse наугад: иногда API и должен возвращать строку.

Для отладки сравните исходный объект, отправленное тело запроса и результат разбора на принимающей стороне. Уберите из примера секреты и персональные данные. Если ошибка указывает на неожиданную букву или скобку, используйте порядок поиска Unexpected token.

Обсудим ваш проект?

Оставьте контакты — перезвоним и обсудим задачу

Содержание
  • Кавычки внутри значения
  • Перенос строки и обратная косая черта
  • Лучше поручить сборку библиотеке
  • Как заметить двойное кодирование
Поделиться:

Похожие статьи

Описание товара: как убрать воду и сохранить характеристики
Инструменты

Описание товара: как убрать воду и сохранить характеристики

3 мин
Тема письма и прехедер: как проверить длину до отправки
Инструменты

Тема письма и прехедер: как проверить длину до отправки

3 мин
UTM-метки в Яндекс Директе: статические и динамические параметры
Инструменты

UTM-метки в Яндекс Директе: статические и динамические параметры

2 мин
Feature IT

Feature IT — платформа по обучению программированию и разработке цифровых продуктов. Мы создаём современные веб-решения для бизнеса и обучаем этому других!

Политика конфиденциальностиПользовательское соглашение

О компании

  • Блог
  • Карьера

Услуги разработки

  • Разработка сайтов под ключ
  • Веб-приложения на React/Next.js
  • Telegram-боты для бизнеса
  • Mini Apps (Telegram, VK)
  • SEO-оптимизированные сайты
  • Автоматизация бизнес-процессов
  • Поддержка и развитие IT-продуктов

Обучение

  • Курс Python с нуля
  • Алгоритмы и структуры данных
  • Паттерны проектирования
  • Подготовка к собеседованиям в IT
  • Практика на реальных проектах

Инструменты

  • Генератор UTM-меток
  • Счётчик символов