logo
GeekFormat

Форматтер JSON

Пока нет содержимого

preview.json
Готово

Бесплатный онлайн-инструмент форматирования JSON, поддерживает украшение, валидацию, сжатие и визуальное редактирование в виде дерева JSON. Со встроенным обнаружением синтаксических ошибок и автоматическим исправлением, поддерживает конвертацию в код на 13 языках программирования (TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML), идеально подходит для отладки API, проверки конфигураций и чтения логов.

Похожие

Варианты использования

  • Однострочный JSON, возвращаемый API, нужно украсить в читаемую структуру для удобства исследования проблем
  • Конфигурационные файлы и поля логов нужно отформатировать перед дополнительной обработкой
  • При разработке и отладке быстро проверить допустимость JSON и сжать его объём
  • Необходимость конвертировать JSON в форматы кода, такие как интерфейсы TypeScript, классы Java или словари Python
  • При сравнении двух ответов API отсортировать по именам ключей перед проверкой различий поле за полем
  • Разбирать сложные вложенные структуры сторонних API, использовать древовидное представление или интеллект-карту для быстрого понимания иерархии
  • Разворачивать для чтения сжатые логи событий, данные Webhook, локализовать аномальные поля
  • Форматировать компактный JSON в локальных переменных окружения или конфигурациях для редактирования, затем сжимать обратно для записи

Функции

  • Более наглядное украшение JSON: быстро организует однострочные данные в читаемую иерархическую структуру с возможностью отступа 2/4 пробела или Tab
  • Поддерживает валидацию и сжатие: обнаруживает синтаксические ошибки в реальном времени с точным указанием позиции, сжимает в максимально компактную однострочную форму одним кликом
  • Конвертация кода на 13 языках программирования: генерация одним кликом для TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML
  • Визуальное редактирование в виде дерева JSON: сворачивание/развёртывание узлов, наглядный просмотр и изменение глубоко вложенных структур
  • Представление в виде интеллект-карты: отображает родительско-дочерние отношения между объектами/массивами через связи узлов, идеально для разбора сложных структур
  • Сортировка ключей: переупорядочивает ключи объектов в алфавитном порядке по возрастанию/убыванию, облегчая сравнение различий и стандартизацию порядка полей
  • Плавная обработка больших файлов: виртуальная прокрутка + фоновый разбор через Web Worker, JSON в несколько МБ без зависаний
  • Конфиденциальность и безопасность: 100% локальное выполнение в браузере, нулевая отправка данных, безопасная обработка ответов с ключами
  • Удобные операции: загрузка/скачивание файлов, копирование одним кликом, откат истории, обмен через URL — всё доступно

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

  1. Вставьте содержимое JSON или загрузите JSON-файл
  2. Выберите режим украшения, сжатия или валидации, также можно переключиться в древовидное представление/интеллект-карту для визуального просмотра
  3. Просмотрите отформатированную иерархическую структуру и предупреждения об ошибках, при необходимости переключитесь на конвертацию кода для генерации структуры целевого языка
  4. Скопируйте обработанное содержимое, скачайте файл или сгенерируйте ссылку для обмена

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

Как быстро отформатировать однострочный JSON в читаемую структуру?

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

В чём разница между форматированием JSON и исправлением JSON?

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

Почему при форматировании JSON появляется ошибка?

Обычно потому что само содержимое не является допустимым JSON, например есть лишние комментарии, одинарные кавычки, конечные запятые или незакрытые скобки. Спецификация JSON (RFC 8259) требует, чтобы ключи использовали двойные кавычки, строки не могут использовать одинарные кавычки, после последнего элемента не может быть запятой, не допускаются комментарии // или /* */. В этом случае правильнее сначала выполнить исправление JSON, а затем форматировать.

Подходит ли для отладки API и просмотра возвращаемых логов?

Очень подходит. Ответы API, данные Webhook, логи событий и фрагменты конфигураций часто требуют форматирования перед исследованием. Инструмент также поддерживает визуальное редактирование в виде дерева JSON, представление в виде интеллект-карты и конвертацию в код на 13 языках программирования, помогая быстро понять структуру данных.

Можно ли конвертировать JSON в интерфейсы TypeScript или классы Java?

Да. Инструмент поддерживает конвертацию JSON в 13 форматов: TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML, генерируя соответствующую структуру кода одним кликом, очень подходит для быстрого создания моделей данных фронтенда и бэкенда на основе ответов API.

Отправляются ли отформатированные JSON-данные на сервер?

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

Можно ли обрабатывать очень большие JSON-файлы?

Да. Инструмент использует рендеринг с виртуальной прокруткой и фоновый разбор через Web Worker, JSON размером в несколько МБ также можно плавно форматировать и просматривать без зависания страницы. Для очень больших файлов рекомендуется напрямую загружать JSON-файл вместо вставки, для более стабильной производительности.

Для чего нужно сжатие JSON (Minify)?

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

Что такое древовидное представление JSON и представление в виде интеллект-карты?

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

Можно ли после форматирования отсортировать по именам ключей?

Да. Инструмент предоставляет функцию сортировки ключей, поддерживает переупорядочивание ключей объектов в алфавитном порядке по возрастанию или убыванию, что облегчает сравнение различий между двумя JSON, стандартизацию порядка полей в конфигурационных файлах или отображение полей API в фиксированном порядке для удобства ревью кода.

Можно ли поделиться отформатированным результатом с коллегами?

Да. Инструмент поддерживает сжатие и кодирование текущего содержимого JSON в URL, генерируя общедоступную ссылку. Открывший ссылку увидит те же данные без необходимости отправки на сервер, подходит для быстрой совместной работы при исследовании проблем с API или воспроизведении сценариев с данными.

О JSON и форматировании JSON

JSON (JavaScript Object Notation) — это лёгкий формат обмена данными, использующий пары ключ-значение и массивы для представления данных. Благодаря характеристикам простоты, читаемости и независимости от языка, он стал де-факто стандартом для веб-API, конфигурационных файлов, логов и передачи данных между фронтендом и бэкендом. JSON имеет только шесть базовых типов значений: строка, число, булево значение, null, объект и массив, синтаксические правила совместно определяются стандартами RFC 8259 и ECMA-404.

Форматирование JSON (также называемое украшением JSON, JSON Beautify) — это добавление разумных отступов и переносов строк к компактному JSON без изменения содержимого данных, организация его в иерархическую форму, удобную для чтения человеком. JSON в ответах API, логах и хранилищах часто сжат в одну строку, его очень трудно читать напрямую; после форматирования можно ясно видеть вложенность объектов, элементы массивов и значения каждого поля.

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

Валидация JSON — это проверка соответствия фрагмента текста синтаксической спецификации JSON. Распространённые недопустимые записи включают: использование одинарных кавычек вместо двойных, ключи без кавычек, лишняя конечная запятая после последнего элемента, наличие комментариев // или /* */, неправильно закрытые скобки или кавычки и т.д. Это не является допустимым JSON и вызовет ошибку при форматировании — в этом случае следует сначала использовать инструмент исправления JSON, а затем форматировать.

Этот инструмент помимо форматирования также предлагает древовидное представление, представление в виде интеллект-карты и возможность конвертации в код на 13 языках программирования: вы можете сворачивать JSON в визуальное иерархическое дерево для просмотра глубоких структур, или одним кликом конвертировать JSON, возвращаемый API, в интерфейсы TypeScript, классы Java, словари Python или операторы создания таблиц базы данных для непосредственного использования в разработке. Вся обработка выполняется локально в браузере, данные не отправляются на сервер.

Краткая таблица типов данных JSON

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

ТипПримерОписание
string"hello"Строка, должна использовать двойные кавычки, поддерживает экранированные символы и кодировку Unicode \uXXXX.
number25 / 3.14 / -1e5Число, поддерживает целые, десятичные и научную нотацию, разбирается как число с плавающей точкой двойной точности, не различает целые и числа с плавающей точкой.
booleantrue / falseБулево значение, может быть только строчными true или false.
nullnullNull-значение, представляет отсутствие данных, должно быть строчным, отличается от пустой строки или 0.
object{"k": "v"}Объект, набор пар ключ-значение, заключённый в фигурные скобки, ключи должны быть строками в двойных кавычках.
array[1, 2, 3]Массив, упорядоченный список значений, заключённый в квадратные скобки, элементы могут иметь разные типы.

Таблица экранирующих символов в строках JSON

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

ЭкранированиеЗначение
\"Двойная кавычка
\\Обратная косая черта
\/Прямая косая черта (необязательное экранирование)
\nСимвол новой строки
\rСимвол возврата каретки
\tСимвол табуляции Tab
\bСимвол возврата на одну позицию (backspace)
\fСимвол перевода страницы
\uXXXXСимвол Unicode, представленный четырьмя шестнадцатеричными цифрами

Сравнительная таблица распространённых недопустимых записей

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

Недопустимая записьДопустимая записьОписание
{name: "a"}{"name": "a"}Ключи должны использовать двойные кавычки
{'name': 'a'}{"name": "a"}Строки должны использовать двойные кавычки, нельзя использовать одинарные
{"a": 1,}{"a": 1}Не допускается конечная запятая
{"a": 1} // комментарий{"a": 1}JSON не поддерживает комментарии
{"a": undefined}{"a": null}Нет undefined, используйте null для null-значения
{"a": .5}{"a": 0.5}Десятичные числа должны иметь целую часть 0

Code Examples

JavaScript: форматирование JSON с помощью JSON.stringify

javascript

Третий параметр встроенного JSON.stringify в браузерах и Node.js задаёт отступ, это наиболее распространённый программный способ форматирования JSON.

const data = { name: '张三', age: 25, tags: ['a', 'b'] };

// Украшение: третий параметр — количество пробелов отступа (можно также передать '\t' для использования Tab)
const pretty = JSON.stringify(data, null, 2);
console.log(pretty);

// Сжатие: без третьего параметра получается максимально компактная одна строка
const mini = JSON.stringify(data);
console.log(mini); // {"name":"张三","age":25,"tags":["a","b"]}

// Разбор строки в объект (проверяет синтаксис, при недопустимом выбрасывает SyntaxError)
const obj = JSON.parse(pretty);

Python: форматирование с помощью модуля json

python

Модуль json стандартной библиотеки Python управляет отступами и отображением китайских символов через параметры indent и ensure_ascii.

import json

data = {"name": "张三", "age": 25, "tags": ["a", "b"]}

# Украшенный вывод, indent задаёт отступ, ensure_ascii=False сохраняет китайские символы
pretty = json.dumps(data, indent=2, ensure_ascii=False)
print(pretty)

# Сжатый вывод: использовать максимально компактные разделители
mini = json.dumps(data, separators=(",",":"), ensure_ascii=False)
print(mini)

# Разбор строки (при недопустимом выбрасывает json.JSONDecodeError)
obj = json.loads(pretty)

Командная строка: форматирование JSON с помощью jq

bash

jq — мощный инструмент для обработки JSON в командной строке, может быстро украшать, сжимать и извлекать поля.

# Украшение (отступ по умолчанию 2 пробела)
cat data.json | jq '.'

# Сжатие в одну строку
cat data.json | jq -c '.'

# Извлечение определённого поля
cat data.json | jq '.user.name'

# Результат curl напрямую в конвейер для украшения
curl -s https://api.example.com/user | jq '.'

Privacy & Security

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

Authoritative References

Troubleshooting

Unexpected token ... in JSON (неожиданный символ / синтаксическая ошибка)

Скорее всего вызвано использованием одинарных кавычек, ключей без двойных кавычек или наличием комментариев // и /* */. Спецификация JSON требует, чтобы все строки и ключи использовали двойные кавычки, и не поддерживает комментарии. Замените на двойные кавычки и удалите комментарии, или сначала используйте инструмент исправления JSON.

Unexpected end of JSON input (неожиданный конец содержимого)

Обычно потому что скобки {} или [] и кавычки не были правильно закрыты, делая JSON неполным. Проверьте, что структура закрыта парами. При вставке ответов API вы могли скопировать только часть содержимого, убедитесь, что скопировали полностью.

Ошибка из-за конечной запятой (Trailing comma)

JSON не допускает запятую после последнего элемента объекта или массива, например {"a":1,} или [1,2,] являются недопустимыми. Просто удалите лишнюю запятую. Объекты JavaScript допускают конечные запятые, но JSON — нет, будьте особенно внимательны при копировании из кода.

Китайские или специальные символы отображаются как \uXXXX

Это нотация Unicode-экранирования JSON, она сама по себе допустима и после форматирования по-прежнему может нормально разбираться. Если вы хотите напрямую отображать китайские символы, настройте отключение экранирования на стороне генератора (например ensure_ascii=False в Python, отключение HTML-экранирования в Go).

Потеря точности больших чисел (например ID превращаются в научную нотацию или обнуляются в конце)

Числа JSON разбираются в двойной точности IEEE 754, целые числа, превышающие 2^53 (как снежинки ID, номера заказов), теряют точность. Решение — оборачивать большие целые числа в строки при передаче, то есть "id": "9007199254740993", чтобы избежать их разбора как чисел.

После форматирования хочу вернуть в одну строку

Просто переключитесь в режим «Сжать / Minify», чтобы вернуть украшенный многострочный JSON обратно в максимально компактную однострочную форму для передачи по API, записи в конфигурации или встраивания в код. Сжатие и украшение являются взаимно обратными операциями, не изменяют содержимое данных.