Форматирование и проверка JSON
Вставьте JSON, чтобы отформатировать, проверить или сжать его. Ошибки показываются со строкой и колонкой.
- Полностью бесплатноБез аккаунта, без дневных лимитов, без платных тарифов.
- Ничего не загружаетсяФайлы обрабатываются на вашем устройстве и не попадают на сервер.
- Результат без подвохаБез водяных знаков, без принудительного ухудшения качества, без ограничения размера.
- Обновления на видуКаждое исправление и каждый новый инструмент записаны на странице изменений.
Что делает этот инструмент
Инструмент берёт любой текст JSON и либо аккуратно раскладывает его с единообразными отступами, либо сжимает в одну строку, либо просто проверяет корректность. Когда на вход приходит не совсем JSON, валидатор указывает точную строку и колонку, где разбор прервался, и показывает окружающие символы, — так пропущенная запятая или ключ без кавычек находятся за секунды, а не вычитыванием сплошной стены текста.
Всё происходит локально, в вашем браузере, встроенным разборщиком JSON движка JavaScript. Вставленный текст никогда не отправляется на сервер, поэтому им безопасно пользоваться для ответов API, конфигурационных файлов, журналов и любых данных с токенами, учётными данными и персональной информацией.
Как пользоваться
Вставьте или введите JSON в поле ввода. Форматирование запускается автоматически по мере набора. Выберите отступ в 2 пробела, 4 пробела или табуляцию и при желании включите сортировку ключей, чтобы упорядочить ключи объектов по алфавиту на каждом уровне вложенности, — так два документа удобно сравнивать инструментом различий. Нажмите «Сжать», чтобы убрать все пробелы, когда нужна минимальная полезная нагрузка для HTTP-запроса или переменной окружения. Кнопка «Копировать» кладёт результат в буфер обмена, «Скачать» сохраняет его файлом .json.
Строка состояния показывает размер в байтах, число ключей объектов и максимальную глубину вложенности — быстрый способ проверить крупный документ на вменяемость, прежде чем куда-то его отправлять.
Какие ошибки ловит валидатор
Запятая после последнего элемента массива или объекта в JSON недопустима, хотя большинство языков программирования её принимают. Одинарные кавычки вокруг строк или ключей неверны: JSON требует двойных. Комментариев в спецификации JSON нет, поэтому блок // или /* */ вызовет ошибку. Ключи без кавычек вроде {name: "x"} — это литерал объекта JavaScript, а не JSON. Особых значений NaN, Infinity и undefined в JSON не существует. Каждый такой случай даёт понятную ошибку с позицией, к которой можно сразу перейти.
История: откуда взялся JSON
Формат JSON (JavaScript Object Notation) описал Дуглас Крокфорд в начале 2000-х как лёгкую альтернативу XML, взяв синтаксис литералов объектов, который уже был в JavaScript. Он был стандартизирован как RFC 4627 в 2006 году, а затем как ECMA-404 и RFC 8259 (2017) — это и есть действующее определение: шесть типов значений (объект, массив, строка, число, true/false, null), UTF-8 как кодировка обмена и никаких комментариев. Его взлёт совпал с расцветом приложений, работающих в браузере: формат, который браузер разбирает сам через JSON.parse, обошёл всё, что требовало отдельного разборщика.
Где это нужно
Почти каждый веб-API отвечает в JSON — поэтому первое, что делают с незнакомым ответом, это вставляют его в форматировщик, чтобы увидеть структуру. Конфигурационные файлы (package.json, tsconfig.json, настройки VS Code), описания инфраструктуры (CloudFormation, состояние Terraform), документы NoSQL (MongoDB, колонки jsonb в PostgreSQL), конвейеры журналов (по одному объекту JSON на строку в ndjson) и полезная нагрузка токена JWT — всё это JSON; ещё он ездит внутри параметров URL, где его сначала нужно закодировать процентами. Родственные форматы его расширяют: JSON5 и JSONC добавляют комментарии и висящие запятые для конфигураций, JSON Schema описывает ожидаемую структуру, а JSON Lines передаёт множество документов одним файлом — и всё это здешний валидатор отвергнет как строгий JSON, что и задумано.
Частые вопросы
Загружается ли мой JSON куда-нибудь?
Нет. Форматировщик работает целиком в вашем браузере. После загрузки страницы можно отключиться от интернета — всё продолжит работать.
Чем форматирование отличается от минификации?
Форматирование добавляет переносы строк и отступы, чтобы структуру читал человек. Минификация убирает все лишние пробелы, чтобы данные были как можно меньше для машины. Смысл JSON при этом одинаков.
Почему инструмент считает мой JSON неверным, если в JavaScript он работает?
Литералы объектов JavaScript допускают больше, чем JSON. Одинарные кавычки, ключи без кавычек, висящие запятые и комментарии нормальны в коде JavaScript, но запрещены стандартом JSON (RFC 8259).
Есть ли ограничение по размеру?
Жёсткого ограничения нет. Документы в несколько мегабайт форматируются мгновенно на современном устройстве; очень большие файлы ограничены только памятью браузера.
Меняет ли сортировка ключей смысл данных?
Нет. По спецификации объекты JSON неупорядочены, поэтому перестановка ключей даёт равнозначный документ. Порядок массивов сохраняется всегда, потому что массивы упорядочены.