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

Три формата часто конкурируют в одних и тех же сценариях. Вот ключевые отличия:

КритерийJSONXMLYAML
ЧитаемостьХорошаяСредняя (многословный)Отличная
РазмерКомпактныйБольшой (теги)Минимальный
КомментарииНетДаДа (#)
Типы данных6 типовВсё — строкаАвтоопределение
ПарсингБыстрыйМедленныйСредний
ПрименениеAPI, конфигиSOAP, RSS, SVGDocker, 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 декодер.

Встроить форматтер на свой сайт

Скопируйте код:

<iframe src="https://toolru.ru/json-formatter/?embed=1" width="100%" height="500" frameborder="0" title="JSON форматтер"></iframe>

Часто задаваемые вопросы

Вставьте JSON в поле ввода — он будет отформатирован с отступами мгновенно. Ошибки синтаксиса подсвечиваются с номером строки.

Минификация удаляет все пробелы, отступы и переносы строк. Это уменьшает размер JSON для передачи по сети.

Да. Если JSON невалидный, калькулятор покажет текст ошибки и примерную позицию проблемы.

До 500 КБ. Для больших файлов рекомендуем использовать локальные инструменты (jq, Prettier).

Нет. Весь парсинг и форматирование происходит в браузере через JSON.parse() и JSON.stringify().

Похожие инструменты

Все для разработчиков →