JSON-форматирование и валидатор

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

Результат можно передать дальше:Сгенерировать TypeScript из этого JSONОткрыть в YAML

Режим
Отступ
Ключи

Последние документы

Вставленные JSON-документы остаются в истории этого браузера только до закрытия вкладки и не попадают в экспорт на странице «Закладки». Значения скрыты по умолчанию — раскрываются кнопкой «Показать».

Готовые примеры

Найдено: 5 из 5

Что это и как пользоваться

Страница делает с одним и тем же текстом три вещи: проверяет его, переформатирует и минифицирует. Валидатор не ограничивается словом «неверный JSON» — он показывает строку, колонку и фрагмент с кареткой в месте, где разбор сломался, поэтому видно, где именно пропущена запятая или лишняя скобка.

Форматирование печатает документ с отступом 2 или 4 пробела либо табуляцией, минификация сжимает его в одну строку. Флажок сортировки ключей выстраивает ключи по алфавиту, но только на верхнем уровне объекта: вложенные объекты и порядок элементов массивов он не трогает, чтобы результат оставался предсказуемым.

Рядом с результатом показывается нормализованный вид документа, так что после обработки видно, что именно изменилось. Сортировка не меняет ни одного значения, поэтому два документа с одинаковыми данными после неё совпадают побайтово — ради этого флажок и нужен.

Ввод ограничен 5 млн символов, вложенность — 2000 уровнями: глубже форматирование не выполняется, чтобы страница не зависла на структуре, которую всё равно невозможно прочитать глазами.

Когда пригодится

  • Проверить ответ API: вставить тело ответа и увидеть точное место поломки вместо общего сообщения об ошибке.
  • Привести конфиг к читаемому виду перед коммитом: отступ 2 пробела плюс сортировка ключей дают детерминированный файл.
  • Сжать документ в одну строку перед отправкой в запрос или вставкой в переменную окружения.
  • Сравнить две версии конфига: отсортировать ключи в обеих, чтобы diff показывал только настоящие изменения.

Чего инструмент не делает

  • Инструмент меняет форму записи, а не данные: значения, типы и порядок элементов массивов остаются прежними, ошибки в самих данных он не исправляет.
  • Комментарии, одинарные кавычки и хвостовые запятые — ошибка разбора, а не повод угадать замысел: расширений JSONC и JSON5 страница не принимает.
  • Сортировка работает на верхнем уровне объекта и не переупорядочивает массивы — если данные лежат в массиве объектов, порядок ключей внутри них останется исходным.
  • Сеть не используется: документ обрабатывается во вкладке, и содержимое поля не попадает в адрес страницы при сохранении настроек.

Примеры

Вход
                    {"users":[{"name":"Мария","role":"admin"}],"version":2}
                  
Выход
                    {
  "users": [
    { "name": "Мария", "role": "admin" }
  ],
  "version": 2
}
                  
Вход
                    {"b":2,"a":1,"name":"Иван"} с включённой сортировкой
                  
Выход
                    {"a":1,"b":2,"name":"Иван"}
                  

Частые вопросы

Чем JSON отличается от JavaScript-объекта?

JSON — это строгий текстовый формат обмена данными. Строки и имена ключей в нём всегда в двойных кавычках, нельзя писать комментарии и хвостовые запятые, значением не может быть функция. JavaScript-объект допускает одинарные кавычки, имена без кавычек и undefined, поэтому не всякий объект из кода является валидным JSON.

Поддерживает ли JSON комментарии?

Нет, стандарт RFC 8259 комментарии не предусматривает. Если вставить конфиг с // или /* */, парсер вернёт ошибку. Для таких файлов существуют форматы JSONC и JSON5, но это отдельные спецификации, и этот инструмент их не принимает — он работает со строгим JSON.

Почему JSON требует двойные кавычки?

По спецификации строковые значения и имена ключей всегда заключаются в "". Одинарные и обратные кавычки недопустимы. Если заменить их вручную нельзя, прогоните текст через этот инструмент как валидатор: он укажет номер строки и позицию с ошибкой.

Что такое хвостовая запятая и почему это ошибка?

Хвостовая запятая — это запятая после последнего элемента массива или ключа, например [1, 2,]. В JSON она запрещена, в отличие от современного JavaScript. Инструмент подсветит лишнюю запятую и предложит убрать её, чтобы текст снова стал валидным.

Чем JSON отличается от JSON5?

JSON5 расширяет JSON: разрешает одинарные кавычки, комментарии, хвостовые запятые и имена ключей без кавычек. Это удобно для конфигов, но JSON5 не читается стандартным JSON.parse. Для обмена данными между системами используйте строгий JSON.

Какой максимальный размер числа в JSON?

Сам формат числа не ограничивает, но JavaScript хранит их как числа двойной точности, точные только целые до 2 в степени 53 минус 1. Очень большие целые, например 64-битные идентификаторы, при парсинге теряют точность. Этот инструмент лишь форматирует текст и не преобразует числа в машинный тип, поэтому их вид сохраняется.

Можно ли в одном JSON несколько корневых значений?

Нет, корень должен быть одним объектом или одним массивом. Запись {"a":1}{"b":2} невалидна. Если нужно передать несколько независимых значений, оберните их в массив или в общий объект с ключами.