IZN Tools

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

Форматировать, проверить и минифицировать в одном окне, с подсветкой ошибки.

ВВОД
РЕЗУЛЬТАТ

Отформатированный результат появится здесь по мере ввода.

Ожидание ввода
Разобрано на вашем устройстве
Похожие
Декодер JWTКодирование в Base64Тестер регулярных выраженийВалидатор JSONСкороМинификатор JSONСкороКонвертер JSON в CSVСкоро

Что на самом деле делает форматтер JSON

JSON, пришедший из API, строки лога или колонки базы, выглядит как одна сплошная строка. Он валиден — и нечитаем. Форматтер разбирает эту строку в настоящую структуру данных и печатает её обратно с одинаковыми отступами, по ключу на строку, чтобы была видна форма объекта, а не частокол скобок.

Вторая половина работы — проверка, и она полезнее. Если текст невалиден, парсер останавливается на первом непонятном символе и сообщает смещение в символах, что в файле на 400 строк не говорит ровно ничего. Этот инструмент переводит смещение в строку и столбец и называет ошибку, когда узнаёт её.

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

  1. Вставьте JSON в левое поле или перетащите туда файл .json.
  2. Выберите отступ — два пробела, четыре или таб. Результат появляется справа по мере ввода, нажимать ничего не нужно.
  3. Включите сортировку ключей, когда нужно сравнить два ответа с одинаковыми данными в разном порядке.
  4. Скопируйте результат или переключитесь на минификацию, чтобы убрать все пробелы перед отправкой.
[ SCREENSHOT — json-formatter ]
Невалидные данные: в строке состояния указаны строка и столбец, где разбор остановился.

Четыре ошибки, которые встречаются на практике

| Сообщение | Причина | Что делать | | --- | --- | --- | | Unexpected token } | Висящая запятая после последнего значения | Убрать её или включить мягкий разбор | | Unexpected token ' | Одинарные кавычки, скопированные из JavaScript | В JSON только двойные кавычки, в том числе у ключей | | Unexpected end of input | Данные обрезались при копировании | Проверить баланс скобок — что-то не закрыто | | Bad control character | Настоящий перенос строки или таб внутри строки | Экранировать как \n или \t |

Почему всё считается локально

Большинство онлайн-форматтеров отправляет вставленное на сервер и форматирует там. Для учебного объекта это нормально, для всего остального — плохая привычка: в ответах API лежат имена клиентов, в токенах — доступы, а в строке лога обычно и то и другое. Вставить боевые данные в форму, которая их выгружает, — это раскрытие данных, каким бы коротким ни было хранение на той стороне.

Этот инструмент использует собственный JSON.parse браузера в уже открытой у вас вкладке. Практическая выгода — скорость: нет загрузки, очереди и обращения к серверу, поэтому результат обновляется на каждом нажатии клавиши. Плата — размер, о чём и говорят ограничения выше.

Вопросы

Мой JSON куда-нибудь отправляется?+

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

Какого размера документ можно вставить?+

Без аккаунта — до 5 МБ, с бесплатным аккаунтом — до 25 МБ. Ограничение есть потому, что вкладка форматирует большой документ в основном потоке: сверх этого размера страница заметно подвиснет, а это хуже, чем честный отказ.

Понимает ли он комментарии и висящие запятые?+

Включите мягкий разбор. Он вырезает комментарии // и /* */ и убирает запятую перед закрывающей скобкой, после чего разбирает остаток как строгий JSON. Внутри строковых значений ничего не трогается, поэтому ссылка с // остаётся целой.

Чем форматирование отличается от проверки?+

Форматирование заново печатает валидный JSON с одинаковыми отступами. Проверка отвечает только на вопрос, разбирается ли текст, и где разбор остановился. Режим «только проверить» нужен для больших документов, когда ответ важнее красивого вывода.

Почему сортировка ключей меняет мой diff?+

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