ГлавнаяИнструментыJSON-форматтер и валидатор с разбором ошибки

JSON-форматтер и валидатор с разбором ошибки

Вставьте JSON — инструмент разложит его с отступами, сожмёт в одну строку и скажет, где сломано. Разбор идёт своим посимвольным проходом, поэтому вместо «Unexpected token» вы видите строку, столбец, сам фрагмент с указателем на символ и объяснение по-русски: висячая запятая, ёлочки из Word, ключ без кавычек, комментарий, NaN из выгрузки. На каждую узнанную поломку есть кнопка починки, и она сначала показывает список изменений. Рядом дерево объекта с копированием пути к узлу, разворот JSON, завёрнутого в строку из логов, и раскодировка \uXXXX обратно в кириллицу.

Отступ
Вставьте JSON в левое поле — проверка пойдёт сама.

Разбор узнал типовые поломки. Кнопка показывает изменения, применяются они отдельной командой.

пройдёт по всем распознанным правилам; кнопка «Вернуть как было» отменяет

Исходный JSON

пусто

Текст никуда не отправляется: разбор идёт в браузере. Потолок — около 2 МБ, на большем объёме вкладка начнёт подвисать. У текста длиннее 400 тысяч символов проверка на каждый символ отключается, работает кнопка «Проверить».

В дереве видно структуру целиком. Кнопка «путь» рядом с узлом кладёт в буфер адрес вида data.items[0].price — им удобно объяснить разработчику, где лежит поле.

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

  1. Проверка идёт сама, пока текст меньше 400 тысяч символов; на большем работает кнопка «Проверить». Потолок инструмента — около 2 МБ.
  2. В ней строка и столбец, сам фрагмент с указателем на символ и объяснение, что в этом месте запрещено. Ниже идут кнопки для узнанных поломок.
  3. Кнопка починки показывает изменения построчно: слева как есть, справа как станет. Применяются они отдельной командой, а «Вернуть как было» откатывает последний шаг.
  4. Отступ в 2 или 4 пробела либо табы, ключи по алфавиту, кириллица в \uXXXX. Кнопка «Сжать в строку» даёт минифицированную версию, а карточки снизу показывают размер до и после.
  5. Вкладка «Дерево» сворачивает узлы и копирует путь к любому полю в виде data.items[0].price — такой адрес удобно отправить разработчику.

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

Чем разбор ошибки здесь отличается от сообщения браузера?

JSON.parse пишет что-то вроде «Unexpected token } in JSON at position 152» и оставляет искать это место руками. Здесь свой проход по символам: он помнит, что ожидалось в этой точке, и переводит это в строку, столбец, фрагмент с указателем и разбор случая — висячая запятая, одинарная кавычка, ключ без кавычек, комментарий, обрыв строки.

Данные куда-то отправляются?

Нет. Разбор, форматирование и починка идут в браузере на JavaScript: текст не уходит на сервер и нигде не сохраняется. Страницу можно открыть, отключить сеть и продолжить работать.

Что такое висячая запятая и почему JSON её не принимает?

Это запятая перед закрывающей скобкой: {"a": 1,}. В JavaScript и Python такая запись проходит, спецификация JSON её запрещает: после последней пары и последнего элемента разделитель не ставится. Кнопка «Убрать висячие запятые» вычищает их по всему тексту, включая несколько запятых подряд.

Откуда в JSON берутся ёлочки и одинарные кавычки?

Ёлочки подставляет автозамена: в Word, в почтовых редакторах и в мессенджерах прямая кавычка превращается в « » или в “ ”. Одинарные приходят из кода на JavaScript и Python, когда объект скопировали прямо из редактора. Замена идёт вне строковых значений, поэтому «Ромашка» внутри названия компании остаётся нетронутой.

Что делает кнопка «Развернуть JSON из строки»?

Разбирает частый случай из логов, когда весь объект лежит внутри двойных кавычек с экранированием: {"payload":"{\"id\":7}"}. Кнопка находит такие поля, разбирает вложенный текст и подставляет его обычным объектом. Тот же приём срабатывает, когда в кавычки завёрнут весь документ целиком.

Длинные числа не портятся при форматировании?

Числа переносятся посимвольно, поэтому идентификатор 9223372036854775807 и цена 199.00 остаются как были. Обычный JSON.parse превратил бы такой идентификатор в 9223372036854776000, потому что число не помещается в тип double.

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

Он не проверяет документ по JSON Schema, не сравнивает две версии между собой и не умеет выгружать результат файлом. JSON5 и JSONL он тоже не поддерживает: комментарии и одинарные кавычки для него поломки, которые надо убрать. Автопочинка работает по типовым правилам и результат стоит просмотреть глазами, особенно там, где строка была оборвана переносом.

Какой объём текста он выдержит?

Потолок — около 2 МБ, дальше разбор отказывается работать, чтобы вкладка не подвисла. От 400 тысяч символов отключается проверка на каждый нажатый символ и остаётся кнопка «Проверить». Выгрузку на десятки мегабайт лучше открывать в редакторе на компьютере.

Похожие инструменты

Генератор QR-кода

Ссылка, текст, телефон или Wi-Fi → QR-код с настройкой размера и коррекции. Скачать PNG. Кодирование в браузере, без отправки на сервер.

Открыть
Узнать мой IP

Ваш IP, провайдер и локация + что о вас видят сайты: браузер, ОС, устройство, экран, шрифты, WebGL-видеокарта и цифровой отпечаток.

Открыть
Base64 encode / decode

Переводит текст в Base64 и обратно с корректной кириллицей (UTF-8). Построчный режим для списков значений.

Открыть
Генератор фавикона

Из картинки — все нужные размеры иконки, favicon.ico и готовый код для head. Показывает, как иконка выглядит во вкладке.

Открыть
URL энкодер / декодер

Кодирует ссылки и текст в percent-encoding и обратно. Построчно для списка URL, режим компонента или целой ссылки.

Открыть
Конвертер цветов и контраст

HEX, RGB и HSL в одном окне, шкала оттенков одного тона и проверка контраста по WCAG с ответом, годится ли цвет для текста.

Открыть

Ещё инструменты для SEO и маркетинга

Кластеризатор запросов, генераторы sitemap и robots.txt, минус-слова, разметка Schema.org и калькуляторы — в разделе инструментов.