calcal.ru
Инструмент для разработчиков

JSON форматтер и валидатор

Форматируйте, минифицируйте и проверяйте JSON-данные прямо в браузере. Подсветка синтаксиса, древовидный просмотр, статистика и подробные сообщения об ошибках на русском языке.

RFC 8259
Стандарт JSON
Последняя спецификация IETF
6
Типов данных
string, number, object, array, boolean, null
100%
Клиентская обработка
Данные не покидают ваш браузер
UTF-8
Кодировка
Полная поддержка Unicode

Что такое JSON

JSON (JavaScript Object Notation) -- это текстовый формат обмена данными, основанный на подмножестве языка JavaScript. Несмотря на происхождение из JS, JSON является полностью языконезависимым и используется в абсолютном большинстве современных веб-приложений, API и конфигурационных файлов.

📚

История создания

Формат был предложен Дугласом Крокфордом (Douglas Crockford) в начале 2000-х годов как легковесная альтернатива XML. Первая спецификация появилась в 2006 году (RFC 4627), а актуальная версия -- RFC 8259 от 2017 года. JSON стал стандартом де-факто для веб-API, вытеснив XML благодаря простоте и компактности.

🔧

Зачем нужен форматтер

Минифицированный JSON-ответ от API или конфигурационный файл в одну строку крайне сложно читать и отлаживать. JSON-форматтер расставляет отступы, переносы строк и подсвечивает синтаксис, превращая нечитаемый поток данных в структурированный, понятный документ. Это экономит время при разработке и поиске ошибок.

🛡

Безопасность данных

Наш инструмент работает полностью на стороне клиента -- все операции парсинга, форматирования и валидации выполняются в вашем браузере с помощью JavaScript. Ваши данные никогда не отправляются на сервер, что гарантирует конфиденциальность чувствительных данных: API-ключей, токенов и конфигураций.

Где используется JSON

JSON стал универсальным форматом данных. Вот основные области, где форматтер и валидатор помогут вам работать эффективнее.

🔗

REST и GraphQL API

Абсолютное большинство современных API используют JSON для передачи данных. Форматирование помогает анализировать ответы при разработке и отладке. Валидация гарантирует корректность запросов перед отправкой.

⚙

Конфигурационные файлы

package.json, tsconfig.json, eslintrc, settings.json в VS Code, манифесты расширений -- все это JSON. Форматтер помогает поддерживать читаемую структуру, а валидатор находит синтаксические ошибки.

📊

Обмен данными

При интеграции систем, миграции баз данных или работе с NoSQL-базами (MongoDB, CouchDB, Firebase) JSON -- основной формат. Минификация уменьшает объем передаваемых данных, а форматирование упрощает анализ.

🐛

Отладка и логирование

При поиске багов JSON-форматтер незаменим: он превращает сжатый ответ сервера в читаемый вид, подсвечивает ключи и значения, показывает структуру данных в виде дерева и помогает найти ошибку с указанием строки.

📦

Хранение в базах данных

PostgreSQL (тип jsonb), MySQL (тип JSON), SQLite поддерживают нативное хранение JSON. Форматирование помогает при написании запросов с JSON-операторами и проверке данных перед вставкой.

🚀

CI/CD и DevOps

GitHub Actions, Docker Compose, Terraform -- многие инструменты DevOps используют JSON или совместимые форматы (YAML). Валидатор помогает ловить синтаксические ошибки до деплоя в продакшн.

Синтаксис JSON/ справочник

JSON поддерживает шесть типов данных: строки, числа, объекты, массивы, логические значения (true/false) и null. Все ключи в объектах обязательно должны быть строками в двойных кавычках.

Объект (Object)

Неупорядоченная коллекция пар ключ-значение, заключенная в фигурные скобки. Ключи -- строки в двойных кавычках, значение -- любой тип JSON. Пары разделяются запятыми.

{ "name": "JSON", "year": 2001, "author": "Crockford" }

Массив (Array)

Упорядоченная коллекция значений в квадратных скобках. Элементы могут быть разных типов: строки, числа, объекты, другие массивы и даже null.

["JavaScript", "Python", "Go", 42, true, null]

Вложенность (Nesting)

Объекты и массивы можно вкладывать друг в друга без ограничений глубины. Это позволяет описывать сложные иерархические структуры данных.

{ "user": { "name": "Иван", "roles": ["admin", "editor"], "settings": { "theme": "dark" } } }

Экранирование (Escaping)

Внутри строк специальные символы экранируются обратной косой чертой: \" (кавычка), \\ (обратная косая), \n (перевод строки), \t (табуляция), \uXXXX (Unicode).

{ "path": "C:\\Users\\admin", "msg": "Hello\nWorld" }

Числа: целые и дробные (через точку), с экспонентой (1.5e10). Восьмеричные (0777) и шестнадцатеричные (0xFF) -- запрещены в JSON.

Кодировка: JSON по стандарту RFC 8259 должен использовать UTF-8 (без BOM). Это обеспечивает совместимость с кириллицей и любыми Unicode-символами.

Частые ошибки в JSON

Большинство проблем с JSON связаны с отличиями от обычного JavaScript. Вот самые распространенные ошибки, которые обнаружит наш валидатор.

Завершающая запятая (trailing comma)

В JavaScript можно писать запятую после последнего элемента массива или объекта, но в JSON это запрещено. Лишняя запятая перед закрывающей скобкой вызовет ошибку парсера. Это самая частая ошибка при ручном написании JSON.

{ "a": 1, "b": 2, } // ошибка!

Одинарные кавычки

JSON требует строго двойные кавычки для строк и ключей. Одинарные кавычки, которые допустимы в JavaScript и Python, в JSON являются синтаксической ошибкой. Это частая проблема при копировании данных из консоли Python или JS.

{ 'name': 'test' } // ошибка!

Комментарии

JSON не поддерживает комментарии ни в каком виде -- ни однострочные (//), ни многострочные (/* */). Если вам нужны комментарии, используйте JSONC (JSON with Comments) или YAML. Некоторые инструменты (VS Code, TypeScript) поддерживают JSONC, но стандартные парсеры -- нет.

{ "key": "value" // комментарий } // ошибка!

Ключи без кавычек

В JavaScript объект может иметь ключи без кавычек, если они являются валидными идентификаторами. В JSON все ключи обязательно заключаются в двойные кавычки. Это одно из ключевых отличий JSON от JS-синтаксиса объектов.

{ name: "test" } // ошибка!

undefined и NaN

В JSON допустимы только null, true и false как специальные значения. Значения undefined, NaN, Infinity и -Infinity из JavaScript запрещены. При сериализации JS-объекта свойства со значением undefined просто исключаются.

{ "val": undefined } // ошибка!

Неэкранированные спецсимволы

Управляющие символы (tab, перевод строки) и обратная косая черта внутри строк должны быть экранированы. Кавычки внутри строки тоже требуют экранирования. Неэкранированные символы приведут к ошибке парсера.

{ "path": "C:\dir" } // нужно C:\\\\dir

Советы по работе с JSON

Практические рекомендации, которые помогут избежать ошибок и работать с JSON-данными эффективнее.

1Валидируйте перед отправкой

Всегда проверяйте JSON перед отправкой через API или сохранением в конфигурационный файл. Одна пропущенная запятая или лишняя скобка может привести к ошибке на сервере или падению приложения при запуске. Наш валидатор укажет точную строку с проблемой.

2Минифицируйте для продакшна

При передаче JSON по сети каждый байт на счету. Минификация удаляет пробелы, отступы и переносы строк, уменьшая размер на 30-60%. Для больших JSON-объектов это может сэкономить сотни килобайт трафика и ускорить загрузку страницы.

3Используйте древовидный просмотр

Для больших и глубоко вложенных JSON-структур древовидный режим значительно удобнее простого текста. Вы можете сворачивать и разворачивать ветви, фокусируясь на нужных данных. Это особенно полезно для анализа ответов API с сотнями полей.

4Выбирайте правильный отступ

Два пробела -- стандарт в Node.js экосистеме (package.json, tsconfig.json). Четыре пробела -- распространены в Python-мире (Django settings, Flask). Tab -- используется реже, но занимает только 1 байт вместо 2-4. Выбирайте формат, принятый в вашей команде.

5JSON Schema для валидации структуры

Синтаксическая валидация проверяет только корректность формата. Для проверки структуры данных (обязательные поля, типы значений, допустимые диапазоны) используйте JSON Schema. Это особенно важно для API-контрактов между фронтендом и бэкендом.

6Альтернативы JSON

Для конфигурационных файлов с комментариями подойдет YAML или TOML. Для высокопроизводительного обмена данными -- Protocol Buffers, MessagePack или CBOR. Для баз данных -- BSON (MongoDB). Каждый формат решает свои задачи.

Как пользоваться

Простая пошаговая инструкция для работы с JSON-форматтером.

1

Вставьте JSON

Скопируйте ваш JSON из консоли, API-ответа, файла или лога и вставьте в левое поле ввода. Можно использовать кнопку «Вставить пример» для тестирования.

2

Выберите действие

Нажмите «Форматировать» для красивого вывода, «Минифицировать» для сжатия, «Проверить» для валидации или «Дерево» для интерактивного просмотра.

3

Настройте отступы

Выберите стиль отступа: 2 пробела (стандарт Node.js), 4 пробела (стандарт Python) или Tab. Настройка применяется при следующем форматировании.

4

Скопируйте результат

Нажмите «Копировать» над полем вывода, чтобы скопировать отформатированный или минифицированный JSON в буфер обмена. Проверьте статистику внизу.

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

JSON (JavaScript Object Notation) -- это текстовый формат для представления структурированных данных. Главные отличия от JS-объектов: все ключи обязательно в двойных кавычках, нет комментариев, нет завершающих запятых, нет undefined и функций. JSON -- это подмножество JavaScript, но не наоборот.
Да, абсолютно безопасно. Наш форматтер работает полностью на стороне клиента (в вашем браузере). Данные никогда не отправляются на сервер. Все операции -- парсинг, форматирование, валидация и минификация -- выполняются локально через встроенные функции JavaScript (JSON.parse и JSON.stringify).
Дуглас Крокфорд намеренно исключил комментарии из спецификации, чтобы предотвратить использование JSON в качестве конфигурационного формата с директивами парсинга (как это произошло с XML). Для конфигураций с комментариями используйте JSONC (JSON with Comments, поддерживается VS Code и TypeScript) или YAML.
Наш инструмент работает в браузере, поэтому ограничение зависит от доступной оперативной памяти. На практике JSON до 5-10 МБ обрабатываются мгновенно, файлы до 50 МБ -- за несколько секунд. Для файлов более 100 МБ рекомендуем использовать CLI-инструменты (jq, python -m json.tool).
Минификация удаляет визуальное форматирование (пробелы, отступы, переносы строк), уменьшая размер на 30-60%. Сжатие (gzip, brotli) -- это алгоритмическое сжатие на уровне передачи данных, уменьшающее размер на 70-90%. В идеале используются оба метода: минифицированный JSON передается через gzip-сжатие.
Четыре метрики: количество ключей и элементов (общее число полей в объектах и элементов в массивах), глубина вложенности (максимальное количество уровней вложенных объектов/массивов), размер входных данных в байтах и размер выходных данных. Сравнение размеров показывает эффективность форматирования или минификации.
JSON легче и проще XML: нет DTD, схем, атрибутов и пространств имен. YAML -- надмножество JSON с поддержкой комментариев, ссылок и более удобным синтаксисом, но сложнее для парсинга. TOML похож на INI-файлы, удобен для конфигураций. Protocol Buffers и MessagePack -- бинарные форматы для высокой производительности.
По стандарту RFC 8259 дублирующиеся ключи в объекте формально не запрещены, но их поведение не определено -- разные парсеры могут обрабатывать их по-разному. JavaScript-парсер (JSON.parse), который использует наш инструмент, сохраняет последнее значение для дублирующегося ключа. Рекомендуется избегать дубликатов в продакшн-коде.
Да, вы можете редактировать JSON в левом поле ввода и повторно нажимать кнопки форматирования, валидации или просмотра дерева. Инструмент мгновенно обработает измененные данные. Для полноценного редактирования с автодополнением рекомендуем VS Code с расширением JSON.
Наш инструмент работает с UTF-8, что является единственной допустимой кодировкой по стандарту RFC 8259. Кириллица, иероглифы, эмодзи и любые Unicode-символы поддерживаются полностью. Если ваш JSON в другой кодировке (Windows-1251, KOI8-R), сначала сконвертируйте его в UTF-8.
Лиана Арифметова
Создатель

Лиана Арифметова

Миссия: Демократизировать сложные расчеты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

⚖️

Отказ от ответственности

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые данным инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Медицинские, финансовые и профессиональные решения должны приниматься исключительно на основании консультации с квалифицированными специалистами — врачом, финансовым советником, инженером или другим профессионалом в соответствующей области. Не используйте результаты данного инструмента как единственное основание для принятия важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут никакой ответственности за прямой или косвенный ущерб, возникший в результате использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию и применение полученных результатов.

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

🏥

Калькулятор генетики

Решётка Пеннета, равновесие Харди-Вайнберга, критерий хи-квадрат, сцепление генов, кодоновая таблица, вероятность наследования.

Калькулятор электромагнитных волн

Конвертер длины волны, частоты и энергии фотона. Спектр электромагнитных волн, распространение в среде.

🧮

Калькулятор коммунальных платежей ЖКХ

Рассчитайте коммунальные платежи: вода, электричество, газ, отопление, капремонт. Тарифы ЖКХ.

💻

Калькулятор электричества для ПК

Расчёт потребления электричества компьютером. При играх, работе, в простое. Стоимость в месяц.

🏗️

Калькулятор ветровой нагрузки: СП 20.13330, районы, k(z)

Расчёт ветровой нагрузки по СП 20.13330: статическая и пульсационная составляющие, коэффициент k(z), аэродинамика.

⚙️

Калькулятор умных сетей (Smart Grid)

Расчёты умных электросетей: нагрузка, счётчики, распределённая генерация, потери, надёжность

⚙️

Калькулятор трибологии

Расчёты трибологии: трение, износ, смазка, подшипники, контактное давление, температура

⚙️

Калькулятор контроля качества

Расчёты контроля качества: контрольные карты, Cp/Cpk, выборочный контроль, Парето, GR&R, стоимость

🏠

Калькулятор норм ГТО

Нормативы ГТО по возрасту и полу. Золотой, серебряный, бронзовый значки. 16 ступеней от 6 до 70+ лет.

🏗️

Калькулятор шкафа-купе

Расчёт шкафа-купе: двери, профиль, ЛДСП, наполнение. Размеры, полки, штанги, ящики. Стоимость в рублях.

💰

Калькулятор налога при дарении

Рассчитайте НДФЛ при дарении квартиры, дома, земли или авто. Близкие родственники освобождены, прочие — 13% (нерезиденты 30%). Ст. 217 п. 18.1 НК РФ.

🏗️

Калькулятор вентиляции

Расчёт воздухообмена по нормам СП 60.13330. Подбор диаметра воздуховода и производительности вентилятора.

Калькулятор интерференции и дифракции волн

Интерференция двух волн, опыт Юнга, дифракционная решётка, тонкие плёнки. Визуализация волновых паттернов.

🏥

Калькулятор микробиологии

Кривая роста бактерий, КОЕ/мл, время генерации, OD600, МИК антибиотиков, стандарты Макфарланда, серийное разведение.

🏗️

Калькулятор гидроизоляции ванной комнаты

Расчёт гидроизоляции ванной: расход мастики, рулонных материалов, лента для стыков, манжеты для труб, стоимость работ.