Инструменты
Руководства

Форматирование и валидация JSON

JSON

Форматирование, валидация и сжатие JSON. Точное определение строки и столбца ошибки, с подсветкой синтаксиса.

100 % на клиенте Без бэкенда

Удалённые URL не запрашиваются; вставьте JSON напрямую.

Ввод
Вывод
Вставьте JSON слева, чтобы увидеть его форматированным здесь.
На этой странице

Что такое форматтер JSON?#

Форматтер JSON берёт плотную «стену» JSON — ту, что сервер пишет в лог одной строкой, или которую бандлер выдаёт минифицированной — и переписывает её с едиными отступами, чтобы текст мог прочитать человек. Звучит тривиально, но именно форматтер хватают первым, когда запрос упал, в конфиге опечатка, или два payload’а выглядят одинаково, а ведут себя по-разному.

Эта страница делает три смежные вещи в одном месте: красивая печать (добавляет отступы и переводы строк), валидация (сообщает, является ли текст корректным JSON вообще) и минификация (убирает каждый байт пробелов, чтобы получить максимально компактный payload). Когда валидация падает, строка состояния не просто пишет «ошибка» — она показывает точные строку и столбец, и часто это разница между пятисекундным исправлением и двадцатью минутами вглядывания.

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

  1. Вставьте JSON в панель Ввод слева. Можно также нажать Пример, чтобы загрузить небольшую демонстрацию, если нужно просто посмотреть, как всё работает.
  2. Выберите стиль Отступ на панели инструментов: 2 пробела, 4 пробела или табуляция. Два пробела — самое распространённое соглашение; табуляция удобна, если вы собираетесь вставить результат в редактор, где она уже используется.
  3. Выберите, что ещё нужно сделать:
    • Форматировать — красивая печать с выбранным отступом.
    • Сжать — свернуть в одну строку без пробелов. Идеально перед вставкой в тело запроса.
    • Проверить — проверить синтаксис, не меняя текст; полезно, когда нужен только ответ «да/нет».
  4. Отметьте Сортировать ключи, если хотите, чтобы свойства объектов выводились в алфавитном порядке. Это на удивление полезно при сравнении ответов от разных версий API: с отсортированными ключами остаются только те отличия, которые действительно важны.
  5. Отметьте Разрешить завершающие запятые для более мягкого, человекочитаемого варианта (запятая после последнего элемента). Учтите, что строгие парсеры такое отвергнут — включайте только для локального просмотра.
  6. Прочитайте результат в панели Вывод. Строка состояния под ней сообщает либо JSON корректен, либо точное место ошибки (строка %row, столбец %col: %message). Нажмите Копировать, чтобы забрать результат.

Ключевые возможности#

  • Строгий нативный парсер. Построен на собственной реализации JSON в браузере, поэтому то, что проходит здесь, проходит и в рантайме. Никаких диалектов и сюрпризов.
  • Точное место ошибки. Завершающая запятая, ключ без кавычек, отсутствующая скобка — каждое сообщает свою строку и столбец, а не безликое «parse error».
  • Три стиля отступов. 2 пробела, 4 пробела, табуляция.
  • Опциональная сортировка ключей и завершающая запятая. Переключаются для каждой задачи без повторной вставки.
  • 100 % на стороне клиента. Текст, который вы вставляете, обрабатывается страницей в вашем браузере. Он никуда не отправляется — бэкенда просто нет.
  • Живой подсчёт символов. Обе панели показывают свой размер, что помогает, когда вы пытаетесь урезать payload на байты.

Разбор примера#

Представьте, что config-эндпоинт возвращает такой минифицированный блок, и нужно обнаружить ключ с ошибкой в имени:

Ввод (минифицировано, одна строка):

{"server":"api.example.com","port":443,"retry":{"count":3,"backoffMs":[100,400,1600]},"tags":["prod","primary"]}

Нажмите Форматировать с отступом 2 пробела и включённой опцией Сортировать ключи:

{
  "port": 443,
  "retry": {
    "backoffMs": [
      100,
      400,
      1600
    ],
    "count": 3
  },
  "server": "api.example.com",
  "tags": [
    "prod",
    "primary"
  ]
}

С отсортированными ключами backoffMs оказывается рядом с count, и сразу видна экспоненциальная форма (100, 400, 1600), которая была незаметна в однострочной версии. Заметьте, что tags остался ["prod","primary"] — «Сортировать ключи» переупорядочивает только свойства объекта; элементы массива он никогда не трогает, поэтому их исходный порядок сохраняется ровно таким, каким вы его задали.

FAQ#

Эта страница отправляет мои данные куда-либо?#

Нет. Разбор выполняется встроенным API JSON в браузере прямо внутри страницы. Серверного эндпоинта нет и сетевого запроса нет — ввод остаётся на вашем устройстве.

Строка состояния пишет, что JSON некорректен, но выглядит он нормально. Что делать?#

Проверьте указанные строку и столбец. Четыре самые частые причины: завершающая запятая перед закрывающей } или ], одинарные кавычки вокруг строк (JSON требует двойные), ключ объекта без кавычек и литеральная табуляция или управляющий символ, вставленный из другого редактора. Номер столбца указывает ровно на виновника.

Что на самом деле делает «Сортировать ключи»?#

Выводит свойства каждого объекта в алфавитном порядке (порядок ASCII, с учётом регистра). Массивы остаются в исходном порядке — сортировка ключей никогда не меняет элементы массива, потому что порядок массива семантически значим.

Справится ли инструмент с очень большими файлами?#

Да, в пределах памяти браузера. Для файлов размером в несколько мегабайт форматирование займёт заметное мгновение; строка состояния показывает количество символов, по которому можно оценить размер. Потоковой обработки здесь нет, поэтому крайне большие вводы (сотни МБ) перегрузят вкладку.