Проверка и формат JSON

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

Как выдать

Исходный JSON

Что здесь происходит

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

Починка исправляет то, что не является JSON, но постоянно в нём встречается. Висячая запятая перед закрывающей скобкой — её разрешает JavaScript, но не JSON. Одинарные кавычки — привычка из кода. Комментарии // и /* */ — из конфигов. Ключи без кавычек — из объектов JavaScript. Всё это чинится с оглядкой на строки: запятая или слеш внутри строкового значения остаются на месте, иначе починка ломала бы данные.

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

Коды вместо букв. В выгрузках кириллица часто записана как \u041f\u0440\u0438\u0432\u0435\u0442 — читать такое невозможно. Ничего включать не нужно: результат собирается заново из разобранных данных, и коды сами превращаются в буквы. Обратного действия нет намеренно — современные системы понимают UTF-8, а коды только раздувают файл.

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

Рядом по смыслу