mikaio.dev

JSON Formatter & Validator

Paste your JSON in the box below and click Format to pretty-print it, or Minify to compress it.

Форматируйте, проверяйте и минифицируйте JSON мгновенно

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

Как пользоваться инструментом

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

Что такое JSON

JSON — текстовый формат данных, представляющий структурированные данные в виде пар "ключ — значение" (объекты) и упорядоченных списков (массивы). Он произошёл от синтаксиса объектов JavaScript, но не зависит от языка программирования — практически в каждом языке программирования есть парсер JSON.

Валидный документ JSON — это одно из следующего: объект, массив, строка, число, логическое значение (true или false) или null.

Пример валидного JSON:

{

"name": "Alice",

"age": 30,

"scores": [95, 87, 91],

"active": true

}

JSON против XML

JSON во многом вытеснил XML как доминирующий формат обмена данными в вебе, потому что он компактнее, легче читается и естественным образом отображается на структуры данных большинства языков программирования (объекты и массивы).

Вложенные структуры с первого взгляда

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

Форматирование с отступами (pretty-printing)

"Минифицированная" строка JSON не содержит лишних пробелов:

{"name":"Alice","age":30,"scores":[95,87,91],"active":true}

Хотя это валидно, читать это сложно. "Pretty-printing", или форматирование, добавляет отступы и переносы строк:

Каждый уровень вложенности отбивается на 2 или 4 пробела. Это делает глубоко вложенные структуры удобными для визуальной навигации.

Краткая история возникновения JSON

JSON стал популярен в начале 2000-х благодаря Дугласу Крокфорду, который задокументировал и назвал формат данных, уже неявно присутствовавший в собственном синтаксисе объектных литералов JavaScript, а не изобрёл нечто совершенно новое. Время его появления совпало с ростом веб-приложений на основе AJAX, которым требовался лёгкий способ обмена данными между браузером и сервером без полной перезагрузки страницы, а его близкое сходство с нативными объектами JavaScript означало, что браузеры могли разбирать его почти бесплатно, без дополнительных затрат. Именно сочетание простоты и удачного момента во многом объясняет, почему JSON обогнал более многословный XML как выбор по умолчанию для веб-API примерно за десятилетие.

JSON в веб-разработке

Веб-API подавляющим большинством используют JSON для тел запросов и ответов. Метод fetch() браузера и XMLHttpRequest оба обрабатывают JSON нативно. Серверные языки разбирают JSON с помощью встроенных библиотек: модуль json в Python, JSON.parse в JavaScript, json_decode в PHP, Gson и Jackson в Java.

Почему форматирование и минификация служат разным целям

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

Частые ошибки JSON и как их заметить

Лишняя запятая после последнего элемента объекта или массива — одна из самых распространённых ошибок, поскольку она допустима в объектных литералах JavaScript, но явно запрещена в JSON. Имена свойств всегда должны быть строками в двойных кавычках — ключи без кавычек и строки в одинарных кавычках недопустимы, хотя оба варианта законны в JavaScript. Комментарии вообще не поддерживаются в стандартном JSON, поэтому конфигурационный файл с полезными встроенными комментариями (как формат JSONC, который VS Code использует для своих настроек) технически не является валидным JSON и требует специального парсера. Поскольку грамматика JSON намеренно строже, чем у JavaScript, копирование объектного литерала JavaScript напрямую в поле JSON — очень частый источник синтаксических ошибок, которые этот инструмент помогает выявить.

Проверка данных перед тем, как им довериться

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

Приватно и мгновенно

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

JSON formatter FAQ

What is JSON?
JSON (JavaScript Object Notation) is a lightweight data interchange format. It uses human-readable text to represent data objects consisting of key-value pairs and arrays.
What does "format" do?
Formatting (also called "pretty-printing") adds proper indentation and newlines to make JSON human-readable. Minifying removes all whitespace to produce the smallest possible valid JSON string.
Does the validator fix errors?
No. The tool parses the JSON and reports the error if it is invalid. Fixing the error is left to the user.