Форматирование JSON онлайн

Локальная обработка
app.formatter.view

Данные также можно передать через #data={"name":"Ada"} или #url=... После чтения параметры сразу удаляются из адресной строки.

Как пользоваться

Разверните сжатый в одну строку ответ API в читаемую структуру. После вставки проверяется синтаксис, выставляются отступы, можно отсортировать ключи. Всё в текущей вкладке — удобно отлаживать продакшен-сообщения, не отправляя их на сторонние сайты. Сжатый JSON из панели Network и однострочные записи из логов можно вставить сразу, чтобы увидеть вложенность.

Автоматическое оформление

Распознаются объекты, массивы и уровни вложенности; отступ — 2 / 4 пробела или Tab. Чем глубже структура, тем проще выровнять поля одного уровня, не считая скобки глазами.

Эффект похож на Prettier или языковой сервис в редакторе, но не нужно создавать файл и ставить плагин — удобно быстро взглянуть на тело ответа.

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

Непарные скобки, пропущенная или лишняя запятая останавливают обработку на стороне ввода с сообщением об ошибке. Часто мешают одинарные кавычки, ключи без кавычек и завершающая запятая из литерала объекта JS.

Если исходник — JSON5 (с комментариями), сначала конвертируйте его в стандартный JSON инструментом JSON5, затем форматируйте здесь.

Передача через адресную строку

Можно открыть страницу с #data={...} или #url= данные подставятся сразу и после чтения исчезнут из адресной строки. Удобно собрать ссылку из документа, тикета или скрипта — получатель увидит те же данные.

Удалённая загрузка #url= ограничена CORS браузера: получится загрузить статику этого сайта или адреса с открытым кросс-доменом.

Пример

Ввод (сжатый)
 {"user":{"id":1001,"name":"Иван","roles":["admin","editor"]}} 
Результат форматирования
{
  "user": {
    "id": 1001,
    "name": "张三",
    "roles": [
      "admin",
      "editor"
    ]
  }
}
Изменятся ли значения полей?

Нет. Меняются только пробелы и переносы; при включённой «Сортировке ключей» меняется порядок ключей объекта, значения остаются.

Чем это отличается от сжатия?

Форматирование нужно для чтения; сжатие — для передачи. Можно переключаться туда и обратно.

Загружаются ли данные?

Нет. Разбор и вёрстка идут в памяти текущего браузера; после обновления или закрытия вкладки содержимое исчезает.

Какой размер файла подходит?

Несколько МБ обычно нормально. Около 2 МБ и больше может замедлиться и показать предупреждение; свыше 10 МБ лучше разбить файл или использовать локальный CLI вроде jq .

Рекомендуемый процесс

  1. Вставьте исходный JSON из API, лога или буфера в левое поле либо нажмите «Загрузить пример», чтобы освоить интерфейс.
  2. После успешной проверки синтаксиса выберите 2 пробела, 4 пробела или Tab; для сравнения с другой копией включите «Сортировку ключей».
  3. Кнопкой «Копировать» верните оформленный текст в редактор, тикет или тест; в продакшене уберите пробелы на странице сжатия.
  4. При глубокой структуре откройте дерево; чтобы вытащить несколько полей, используйте JSONPath.

При совместной отладке полезно сначала отформатировать и увидеть структуру, затем делать Diff или перевод в YAML — так меньше риск пропустить уровень вложенности, чем править сжатую одну строку.