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

Форматирование, минификация и проверка JSON в браузере: отступ 2/4 пробела или табуляция, сортировка ключей, точные большие числа, файлы .json.

Введённые данные и файлы остаются в браузере

Входной JSON

Вставьте JSON или перетащите сюда файл .json, чтобы отформатировать, сжать или отсортировать ключи.

В редакторе Tab делает отступ. Чтобы выйти из редактора, нажмите Esc, затем Tab.

На этой странице

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

Подробное описание функциональности

Форматировать переписывает документ с отступом 2 или 4 пробела либо табуляцией на уровень, Компактный режим (минификация) убирает все лишние пробелы и переводы строк. Сортировать ключи упорядочивает ключи каждого объекта на всех уровнях вложенности — так два JSON-файла удобно сравнивать в diff. Числа выводятся ровно как в исходнике: 12345678901234567890 и 1.0 не округляются и не укорачиваются — в браузерах с поддержкой JSON.rawJSON (актуальные Chrome, Edge и Firefox).

Ввод проверяет строгий JSON-парсер браузера: комментарии, висячие запятые и одинарные кавычки считаются ошибкой, а сообщение указывает место, например Expected double-quoted property name in JSON at position 7 (line 1 column 8) в Chrome. Редактор не тормозит на файлах в несколько мегабайт, в том числе на минифицированном JSON в одну строку; Ctrl/Cmd+F ищет по всему тексту.

Файл .json можно открыть кнопкой или перетащить на редактор, результат — скопировать или скачать как formatted.json. Отступ, сортировка и компактный режим запоминаются в этом браузере; сам JSON не сохраняется и не загружается на сервер.

Практические примеры

Минифицировать ответ API: с включённым компактным режимом многострочный { "a": [1, 2], "b": "x" } превращается в {"a":[1,2],"b":"x"}.

Отсортировать ключи на всех уровнях: {"b":1,"a":{"d":true,"c":[1,2]}} с сортировкой и компактным режимом даёт {"a":{"c":[1,2],"d":true},"b":1}.

Сохранить большие ID: {"id": 12345678901234567890, "price": 1.0} минифицируется в {"id":12345678901234567890,"price":1.0}; обычные JSON.parse + JSON.stringify превратили бы ID в 12345678901234567000, а цену — в 1.

Найти синтаксическую ошибку: {"a":1,} не форматируется; в сообщении указана позиция 7 (строка 1, столбец 8) — висячая запятая перед }.

Как использовать этот инструмент

  1. Добавьте JSON

    Вставьте текст в редактор Входной JSON, нажмите Открыть, чтобы загрузить файл .json, или перетащите файл на редактор.

  2. Выберите формат

    Задайте Размер отступа (2 пробела, 4 пробела или табуляция) и при необходимости включите Сортировать ключи или Компактный режим (минификация).

  3. Отформатируйте

    Нажмите Форматировать или Ctrl+Enter (Cmd+Enter на macOS). Если JSON некорректен, над редактором появится ошибка, а текст останется без изменений.

  4. Заберите результат

    Нажмите Копировать, чтобы скопировать результат, или Скачать, чтобы сохранить его как formatted.json.

Советы и лучшие практики

  • Смена отступа, сортировки или компактного режима сразу переформатирует текущий текст.
  • JSON5 (комментарии, висячие запятые, одинарные кавычки, ключи без кавычек) — это не JSON: парсер остановится на первом таком символе.
  • Сортировка идёт по кодам символов: "B" раньше "a", а ключи-числа вроде "2" и "10" всегда оказываются первыми (так устроены объекты JavaScript).
  • Стрелки рядом с номерами строк сворачивают большие объекты и массивы; Ctrl/Cmd+F находит текст даже в строках за пределами экрана.
  • В редакторе Tab вставляет отступ; чтобы уйти из редактора с клавиатуры, нажмите Esc, затем Tab.
  • После первого открытия страница работает и без сети, а JSON не покидает браузер.