ToolActToolAct

Инструмент форматирования JSON

Ввод JSON
Результат форматирования
Строк: 1Символов: 0Байт: 0
Строк: 1Символов: 0

Что такое форматирование JSON?

JSON Formatter делает компактный или неаккуратный JSON читаемым, добавляя отступы, переносы строк и видимую структуру. JSON используется в ответах API, конфигурациях, логах, feature flags, тестовых данных и no-code-интеграциях, где пропущенная запятая, неправильные кавычки или неожиданная вложенность сразу вызывают ошибку парсинга. Инструмент помогает быстро увидеть объекты, массивы, ключи, значения и вероятные места ошибки, а при необходимости снова сжать JSON. Форматирование не меняет смысл данных и не проверяет бизнес-схему автоматически. Для production API отдельно важны типы полей, обязательность, null-значения и версионные контракты. Для production-данных или кодовой базы результат все равно нужно проверить parser, тестами или правилами проекта.

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

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

  1. Вставьте или введите JSON-данные в левое поле ввода
  2. Выберите размер отступа (2 пробела, 4 пробела или табуляция)
  3. Нажмите «Format» для форматирования или «Minify» для удаления пробелов
  4. Результаты появятся автоматически справа с подсветкой синтаксиса
  5. Нажмите «Copy» или «Download» для сохранения результата

Заметки о валидации JSON

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

Применение

Проверка ответов API прямо в браузереВставьте компактное тело ответа, чтобы развернуть вложенные объекты и массивы с отступом в два или четыре пробела либо табуляцией. Ошибки парсинга содержат вычисленные строку и столбец, поэтому malformed-ответ можно исправить, не выискивая проблему глазами по всему документу.
Подготовка JSON для коммитов и ревьюКогда конфигурации, тестовые фикстуры или переводы нуждаются в стабильном формате, форматтер выдаёт детерминированный вывод с выбранным отступом. Режим минификации работает в обратную сторону, когда те же данные нужно скопировать в переменную окружения или поле запроса.
Локальная очистка конфиденциальных данныхПарсер, форматтер, минификатор, копирование и скачивание работают в браузере, не передавая токены, клиентские поля, внутренние фиче-флаги и неопубликованные формы API сторонним бьютификаторам. Проверяйте вывод отдельно по спецификации OpenAPI или JSON Schema, поскольку форматирование доказывает только корректность парсинга, а не соответствие данных контракту. Следите за неявным приведением типов у больших числовых полей.
Пошаговое сравнение двух JSON-ответовОтформатируйте старый и новый ответ с одинаковым отступом, затем выровняйте их рядом в diff-просмотрщике, чтобы обнаружить переименованные ключи, изменение типов и различия между null и отсутствующим полем. Это быстрее, чем сканировать сырой минифицированный JSON, особенно для тел вебхуков, где одно заменённое поле ломает потребителей.
Сжатие для переменных окружения или curl-запросовПереключитесь в режим минификации, чтобы уместить большой конфигурационный блок в однострочную переменную окружения, .env-файл или аргумент curl --data. После этого проверьте целевым парсером, поскольку некоторые HTTP-клиенты всё ещё плохо работают с очень длинными однострочными телами размером в сотни килобайт. Строгий JSON (RFC 8259) запрещает trailing-запятые и комментарии, поэтому при вводе JSON5 или HJSON строгий парсер отвергнет строки, начинающиеся с // или заканчивающиеся ,]; в этом случае включите толерантный режим или удалите комментарии перед форматированием. Целые числа выше 2^53 теряют точность, поскольку JavaScript представляет их как IEEE-754 double.

Технический принцип

JSON (JavaScript Object Notation) определён в RFC 8259 / ECMA-404. Грамматика является строгим подмножеством литералов объектов JavaScript: строки должны быть в двойных кавычках, ключи должны быть в кавычках, trailing-запятые запрещены, комментарии не допускаются. Форматтер разбирает документ с помощью `JSON.parse()` в граф объектов хост-языка, затем сериализует обратно через `JSON.stringify(value, replacer, indent)`, где indent — число (1-10 пробелов) или строка (`'\t'`). Парсинг выполняется за O(n) и обычно быстрее этапа stringify, поскольку построение вывода выделяет новые строки. Обработка чисел следует стандарту IEEE 754 двойной точности: целые числа больше `Number.MAX_SAFE_INTEGER` (2^53 - 1 = 9007199254740991) теряют точность, поэтому `9007199254740993` при round-trip превращается в `9007199254740992`. Десятичные повторы вроде `0.1 + 0.2` дают `0.30000000000000004` после парсинга. Юникодные строки допускают экранирование `\uXXXX`, включая суррогатные пары (`\uD83D\uDE00` → 😀); парсер отвергает одинокие непарные суррогаты. Пробельные символы значимы только внутри строк — любая комбинация пробела, табуляции, LF, CR между токенами парсится идентично. Распространённые нестандартные послабления — это JSON5 (комментарии, trailing-запятые, ключи без кавычек) и JSONC (конфигурация VS Code). Стандартный JSON их не допускает, и `JSON.parse` выбрасывает `SyntaxError` при их встрече. Потоковые альтернативы, такие как NDJSON (один объект на строку) и JSON Lines, избегают загрузки всего документа в память. Для глубоко вложенного ввода предел стека V8 (~10 000 кадров) ограничивает рекурсивные парсеры; промышленные парсеры используют итеративные конечные автоматы для снятия этого ограничения.

  • Грамматика RFC 8259 / ECMA-404 — шесть типов значений (объект, массив, строка, число, true/false, null); строки в двойных кавычках; ключи должны быть в кавычках; нет trailing-запятых; нет комментариев.
  • `JSON.parse(text)` выполняется за O(n) и выбрасывает `SyntaxError` с указанием смещения символа при невалидном вводе; `JSON.stringify(value, replacer, indent)` генерирует форматированный вывод с отступом в 2-10 пробелов или `'\t'`.
  • Точность чисел IEEE 754: `Number.MAX_SAFE_INTEGER = 2^53 - 1`; целые числа за этим пределом округляются до ближайшего представимого double, поэтому ID чатов и Twitter Snowflake ID должны передаваться как строки.
  • Экранирование Unicode `\uXXXX` поддерживает всю BMP; символы за пределами BMP требуют кодирования суррогатной парой `\uD83D\uDE00`; парсер отвергает одинокие непарные суррогаты по RFC 8259 §8.2.
  • Распространённые ошибки парсинга: строки в одинарных кавычках (`'foo'`), trailing-запятая после последнего элемента массива/объекта, неэкранированные управляющие символы внутри строк, неэкранированный обратный слеш, отсутствие закрывающей `}`/`]`, BOM (`\uFEFF`) в начале.
  • Циклические ссылки выбрасывают `TypeError: cyclic object value` в `JSON.stringify`; используйте колбэк `replacer` с WeakSet для разрыва циклов, или библиотеки вроде `flatted` / `json-stringify-safe`.
  • Нестандартные варианты: JSON5 (`.json5`, допускает комментарии и trailing-запятые), JSONC (конфигурация VS Code), NDJSON / JSON Lines (один объект на строку, удобно для потоковой обработки) — все отвергаются строгим `JSON.parse`.

Примеры

Пример объекта

Вход:
{
  "name": "ToolAct",
  "type": "web tool",
  "active": true
}

Выход: красивое форматирование с отступом 2 пробела и стабильным порядком ключей

Пример массива

Вход:  [1,2,3,"a","b","c"]
Выход: отформатировано с отступом 2 пробела; числа остаются числовыми, строки сохраняют кавычки

Вложенная структура

Вход:
{"user":{"name":"Alex","skills":["JavaScript","Python"]}}

Выход:
{
  "user": {
    "name": "Alex",
    "skills": [
      "JavaScript",
      "Python"
    ]
  }
}
Примечание: вложенные объекты и массивы получают отступ рекурсивно; ширина отступа выбирается на панели инструментов

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

Что делает форматтер?

Переформатирует JSON: красивая печать с выбранным отступом (2 или 4 пробела) или минификация в одну строку. Проверяет валидность при разборе, поэтому синтаксические ошибки сообщаются с указанием строки и столбца.

Почему мой JSON отвергается как невалидный?

Типичные причины: висячие запятые (допустимы в JS, запрещены в JSON), строки в одинарных кавычках (нужны двойные), ключи без кавычек, комментарии (// или /* */) или пропущенные скобки. Страница показывает место сбоя разбора. JSON5 и JSONC (JSON с комментариями) — это надмножества JSON; для них используйте другой парсер.

Сохраняется ли порядок ключей?

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

Справится ли он с очень большими JSON-файлами?

Современные браузеры справляются с JSON-файлами в 10–50 МБ, но редактор может тормозить. Для файлов в сотни мегабайт используйте потоковый парсер (jq в командной строке, инструменты ndjson); браузерные парсеры загружают всё дерево в память.

Загружается ли мой JSON?

Нет. Разбор и форматирование выполняются в вашем браузере через JSON.parse и JSON.stringify. Вставленный JSON никуда не передаётся.

Почему большие числа теряют точность?

JavaScript JSON.parse использует Number — двойную точность IEEE 754. Целые числа выше 2^53 теряют точность (например, 9007199254740993 молча округляется). Для BigInt или разбора с сохранением строк используйте кастомный парсер или заранее помечайте большие числа строками на стороне отправителя.

А как насчёт JSONC (JSON с комментариями)?

Строгий JSON запрещает комментарии. Некоторые IDE (конфиги VS Code) используют JSONC, который добавляет комментарии // и /* */. Форматтер обычно поддерживает режим «JSONC», сохраняющий комментарии; в строгом режиме комментарий — это синтаксическая ошибка.

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

Инструмент экранирования JSON

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

JSON в TypeScript

Бесплатный онлайн-конвертер JSON в интерфейсы TypeScript: автоматически генерирует определения типов с поддержкой вложенных объектов, массивов и union-типов.

Генератор JSON Schema

Бесплатный онлайн-генератор JSON Schema, создающий соответствующие стандартам определения схем из JSON-данных. Поддерживает вложенные объекты, вывод типов массивов, настройку обязательных полей для быстрой настройки валидации данных.

Инструмент форматирования XML

Онлайн-инструмент для форматирования XML с автоматическим отступом, валидацией синтаксиса и сжатием. Настраиваемый отступ, быстрое обнаружение ошибок формата XML.

Инструмент форматирования YAML

Онлайн-инструмент для форматирования YAML с проверкой синтаксиса, автоматическим отступом и конвертацией формата. Легкая обработка конфигурационных файлов.

Конвертер CSV в JSON

Бесплатный онлайн-конвертер CSV в JSON с поддержкой пользовательского разделителя и опцией использования первой строки как заголовка. Быстрая конвертация табличных данных в формат JSON.