JSON форматтер и валидатор онлайн
Форматирование, минификация и валидация JSON. Подсветка синтаксиса, ошибки с номером строки.
Использовано: — раз
Зачем форматировать JSON
JSON (JavaScript Object Notation) — самый популярный формат обмена данными в вебе. API ответы, конфигурационные файлы, базы данных — всё использует JSON.
Минифицированный JSON экономит трафик, но нечитаем для человека. Форматирование с отступами делает структуру данных наглядной и помогает быстро находить нужные поля.
Для тестирования регулярных выражений используйте regex тестер. Для кодирования данных — Base64 кодировщик.
Что такое JSON
JSON (JavaScript Object Notation) — текстовый формат обмена данными, который одинаково хорошо читается и людьми, и машинами. Хотя формат создавался на основе синтаксиса JavaScript, он полностью независим от языка программирования. JSON поддерживается в Python, PHP, Java, Go, C#, Ruby и практически в любом другом языке.
Формат используется повсеместно: REST API возвращают ответы в JSON, конфигурационные файлы (package.json, tsconfig.json, composer.json) описываются в JSON, базы данных вроде MongoDB и CouchDB хранят документы в JSON-подобных структурах. Даже обмен сообщениями между микросервисами чаще всего идёт именно через JSON.
JSON поддерживает шесть типов значений: строка (в двойных кавычках), число, булев (true/false), null, массив (упорядоченный список) и объект (набор пар «ключ-значение»). Этого набора достаточно для описания практически любой структуры данных.
Частые ошибки в JSON
JSON выглядит просто, но у него строгий синтаксис. Вот типичные ошибки, которые ломают парсинг:
Висячая запятая (trailing comma). В JavaScript массив [1, 2, 3,] валиден.
В JSON — нет. Последний элемент не должен заканчиваться запятой. Эта ошибка — самая частая
при ручном редактировании конфигов.
Одинарные кавычки. JSON требует только двойные кавычки для строк.
{'key': 'value'} — невалидный JSON. Правильно: {"key": "value"}.
Python-разработчики часто путают словарь Python с JSON — форматы похожи, но не идентичны.
Ключи без кавычек. В JavaScript объект {name: "test"} работает.
В JSON каждый ключ обязан быть строкой в двойных кавычках: {"name": "test"}.
Комментарии. JSON не поддерживает комментарии — ни //,
ни /* */. Если вам нужны комментарии в конфигурации, используйте JSON5 или JSONC
(VS Code использует именно JSONC для settings.json).
Неэкранированные спецсимволы. Обратная косая черта, двойная кавычка и управляющие
символы внутри строк требуют экранирования: \\, \",
\n, \t.
JSON vs XML vs YAML
Три формата часто конкурируют в одних и тех же сценариях. Вот ключевые отличия:
| Критерий | JSON | XML | YAML |
|---|---|---|---|
| Читаемость | Хорошая | Средняя (многословный) | Отличная |
| Размер | Компактный | Большой (теги) | Минимальный |
| Комментарии | Нет | Да | Да (#) |
| Типы данных | 6 типов | Всё — строка | Автоопределение |
| Парсинг | Быстрый | Медленный | Средний |
| Применение | API, конфиги | SOAP, RSS, SVG | Docker, CI/CD |
JSON лучше всего подходит для API и обмена данными между приложениями. XML незаменим там, где нужны пространства имён и схемы валидации (XSLT, XSD). YAML удобен для конфигурационных файлов (docker-compose.yml, .github/workflows), но чувствителен к отступам и опасен при парсинге без ограничений (YAML-бомбы).
Минификация JSON
Минификация — удаление всех пробелов, табуляций и переносов строк из JSON. Отформатированный JSON с отступами может занимать в 2-3 раза больше места, чем минифицированный. Для API, которые обрабатывают тысячи запросов в секунду, это существенная экономия трафика.
Когда минифицировать: при передаче по сети (API-ответы, вебсокеты), при хранении в NoSQL-базах, при встраивании JSON в HTML (data-атрибуты). Парсеры работают с минифицированным JSON быстрее, потому что им не нужно пропускать пробельные символы.
Когда не минифицировать: в конфигурационных файлах, которые редактирует человек (package.json, tsconfig.json), при отладке API-ответов, в документации и примерах кода. Для таких случаев используйте форматирование с отступами в 2 или 4 пробела.
Наш форматтер делает и то, и другое: вставьте минифицированный JSON — получите читаемый вариант с подсветкой. Или нажмите «Минифицировать» для обратной операции. Для работы с кодированными данными внутри JSON используйте Base64 декодер.
Встроить форматтер на свой сайт
Скопируйте код:
Часто задаваемые вопросы
Вставьте JSON в поле ввода — он будет отформатирован с отступами мгновенно. Ошибки синтаксиса подсвечиваются с номером строки.
Минификация удаляет все пробелы, отступы и переносы строк. Это уменьшает размер JSON для передачи по сети.
Да. Если JSON невалидный, калькулятор покажет текст ошибки и примерную позицию проблемы.
До 500 КБ. Для больших файлов рекомендуем использовать локальные инструменты (jq, Prettier).
Нет. Весь парсинг и форматирование происходит в браузере через JSON.parse() и JSON.stringify().