JSON форматтер и валидатор
Ошибка в строке 3, колонке 12 — валидатор укажет точное место и объяснит причину по-русски. Вставьте JSON — получите отформатированный текст с отступами или компактную строку для передачи.
Инструмент
Как проверить и отформатировать JSON
Вставьте текст — инструмент разбирает его по стандарту JSON (RFC 8259) и выводит либо отформатированную версию, либо ошибку с номером строки и колонки. Форматирование добавляет переносы и отступы, чтобы структуру можно было читать глазами; минификация делает обратное — убирает всё лишнее и оставляет одну строку.
значение = объект | массив | строка | число | true | false | null
объект = { “ключ”: значение, … } ключи только в двойных кавычках
массив = [ значение, значение, … ] последняя запятая запрещена
число = -12.5e3 десятичный разделитель — точка
Разберём вручную ответ {"name":"Иван","age":30,"skills":["JS","SQL"]}: это объект с тремя ключами, один из которых содержит массив из двух строк. Глубина вложенности — 2, ключей — 3, элементов в массивах — 2. После форматирования с отступом 2 пробела он займёт 8 строк и 76 байт вместо 50 — на 52 % больше, зато каждое поле на своей строке. Минификация вернёт исходные 50 байт.
Кириллица и эмодзи в строках сохраняются как есть, без превращения в \u-последовательности: «Алматы» останется «Алматы». Числа не округляются и не меняют формат, кроме случаев вроде 1.0 → 1 и 1e2 → 100, которые предписывает стандартный разбор. Исключение — целые длиннее 16 цифр (идентификаторы вроде 12345678901234567890): JavaScript хранит их приближённо, и инструмент предупредит, что значение изменилось; такие поля в API принято передавать строками.
Что такое JSON
JSON — это текстовый формат обмена данными из объектов (пары «ключ — значение»), массивов, строк, чисел, логических значений и null, описанный в RFC 8259. Форматтер — это инструмент, который проверяет синтаксис, расставляет отступы или, наоборот, сжимает документ в одну строку.
Типичные ошибки и как их читать
| Сообщение валидатора | Причина | Как исправить |
|---|---|---|
лишняя запятая перед } или ] | запятая после последнего элемента | удалить запятую |
| одинарные кавычки недопустимы | 'текст' вместо "текст" | заменить на двойные |
| ожидалось имя ключа в двойных кавычках | ключ без кавычек: name: 1 | взять ключ в кавычки |
| десятичный разделитель — точка | 3,14 | записать 3.14 |
| комментарии не допускаются | // пояснение в файле | удалить или вынести в поле "_comment" |
| незакрытая строка | перенос строки внутри кавычек | заменить на \n |
| «undefined» не является значением | значение из JavaScript | использовать null |
Позиция считается от начала текста: строка — по переносам, колонка — по символам в строке, начиная с 1. Рядом с сообщением показан фрагмент текста вокруг ошибки, чтобы её было проще найти в редакторе. Исправляйте ошибки по одной: валидатор останавливается на первой найденной.
Что показывает статистика
После успешной проверки под результатом выводятся размер до и после в байтах, тип корневого значения, глубина вложенности, число ключей во всех объектах и число элементов во всех массивах. Эти цифры помогают оценить ответ API: файл на 2 МБ с глубиной 12 стоит разбить на части, а объект с 5 000 ключей вместо массива — признак, что данные лучше переложить в список.
Размер считается в байтах UTF-8: русская буква весит 2 байта, поэтому JSON с кириллицей на треть тяжелее, чем кажется по количеству знаков.
Где применяется JSON
Формат стал стандартом обмена данными между сайтом и сервером, в мобильных приложениях и интеграциях: выгрузки маркетплейсов, банковские API, Telegram-боты. В России в JSON работают API операторов фискальных данных и облачных касс, в 1С — обмен с сайтами через HTTP-сервисы, а конфигурации современных программ — от VS Code до Docker — хранятся в файлах .json. Верстальщики форматируют ответы API, чтобы понять структуру; аналитики — выгрузки из Метрики и рекламных кабинетов перед загрузкой в таблицы.
Вопросы и ответы
Почему JSON не проходит проверку, хотя выглядит правильно?
Самые частые причины: запятая после последнего элемента, одинарные кавычки вместо двойных, ключ без кавычек, комментарии, десятичная запятая вместо точки (3,14 → 3.14) и значения undefined или NaN. Всё это допустимо в JavaScript, но запрещено стандартом JSON — валидатор назовёт конкретную причину и позицию.
Какой отступ выбрать — 2, 4 пробела или табуляцию?
Единого стандарта нет. Два пробела приняты в мире JavaScript и Node.js (так пишет npm в package.json), четыре — в проектах на Python, PHP, Java и в документации API. Табуляция удобна, когда ширину отступа настраивает редактор. Для передачи по сети и хранения используйте минифицированный вариант.
Что даёт минификация JSON?
Удаляются все переносы строк и пробелы вне строковых значений, при этом данные не меняются. Для типичного ответа API с отступом 2 экономия составляет 15–30 %, для глубоко вложенных структур — до 50 %. При включённом gzip выигрыш меньше, но парсинг компактной строки всё равно быстрее.
Зачем сортировать ключи?
Отсортированные ключи облегчают сравнение двух версий файла в системе контроля версий и поиск нужного поля в больших объектах. Порядок ключей по стандарту не имеет значения, поэтому сортировка безопасна. Массивы при этом не трогаются: там порядок элементов — часть данных.
Куда отправляется вставленный JSON?
Никуда: разбор и форматирование выполняются в вашем браузере, страница не делает сетевых запросов с данными. Поэтому в инструмент можно вставлять ответы внутренних API, конфигурации с адресами серверов и выгрузки с персональными данными, не нарушая требований 152-ФЗ.
Источники и методика
Обновлено: