Форматирование и валидация JSON
JSONФорматирование, валидация и сжатие JSON. Точное определение строки и столбца ошибки, с подсветкой синтаксиса.
Удалённые URL не запрашиваются; вставьте JSON напрямую.
На этой странице
Что такое форматтер JSON?#
Форматтер JSON берёт плотную «стену» JSON — ту, что сервер пишет в лог одной строкой, или которую бандлер выдаёт минифицированной — и переписывает её с едиными отступами, чтобы текст мог прочитать человек. Звучит тривиально, но именно форматтер хватают первым, когда запрос упал, в конфиге опечатка, или два payload’а выглядят одинаково, а ведут себя по-разному.
Эта страница делает три смежные вещи в одном месте: красивая печать (добавляет отступы и переводы строк), валидация (сообщает, является ли текст корректным JSON вообще) и минификация (убирает каждый байт пробелов, чтобы получить максимально компактный payload). Когда валидация падает, строка состояния не просто пишет «ошибка» — она показывает точные строку и столбец, и часто это разница между пятисекундным исправлением и двадцатью минутами вглядывания.
Как пользоваться#
- Вставьте JSON в панель Ввод слева. Можно также нажать Пример, чтобы загрузить небольшую демонстрацию, если нужно просто посмотреть, как всё работает.
- Выберите стиль Отступ на панели инструментов: 2 пробела, 4 пробела или табуляция. Два пробела — самое распространённое соглашение; табуляция удобна, если вы собираетесь вставить результат в редактор, где она уже используется.
- Выберите, что ещё нужно сделать:
- Форматировать — красивая печать с выбранным отступом.
- Сжать — свернуть в одну строку без пробелов. Идеально перед вставкой в тело запроса.
- Проверить — проверить синтаксис, не меняя текст; полезно, когда нужен только ответ «да/нет».
- Отметьте Сортировать ключи, если хотите, чтобы свойства объектов выводились в алфавитном порядке. Это на удивление полезно при сравнении ответов от разных версий API: с отсортированными ключами остаются только те отличия, которые действительно важны.
- Отметьте Разрешить завершающие запятые для более мягкого, человекочитаемого варианта (запятая после последнего элемента). Учтите, что строгие парсеры такое отвергнут — включайте только для локального просмотра.
- Прочитайте результат в панели Вывод. Строка состояния под ней сообщает либо
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, с учётом регистра). Массивы остаются в исходном порядке — сортировка ключей никогда не меняет элементы массива, потому что порядок массива семантически значим.
Справится ли инструмент с очень большими файлами?#
Да, в пределах памяти браузера. Для файлов размером в несколько мегабайт форматирование займёт заметное мгновение; строка состояния показывает количество символов, по которому можно оценить размер. Потоковой обработки здесь нет, поэтому крайне большие вводы (сотни МБ) перегрузят вкладку.