JSON Форматтер и Валидатор
Разбор / Pretty Print / Минификация / Проверка / Escape / Unescape
Что такое форматировщик JSON?
Форматировщик JSON добавляет отступы и переносы строк в сжатый JSON, делая его читаемым и удобным для редактирования. Будь то плотный ответ API, компактный конфигурационный файл или фрагмент JSON в логах — форматирование мгновенно делает структуру и каждое поле понятными. После форматирования используйте наш инструмент сжатия JSON, чтобы убрать пробелы; объедините его с инструментом HTTP-тестирования для отправки запросов и с конвертером отметок времени для чтения Unix-времени в полях. Также можно отформатировать локально через json.dumps(indent=2) в Python или JSON.stringify(obj, null, 2) в JavaScript, но наш инструмент работает прямо в браузере без настройки.
Основные сценарии использования
Отладка API: ответы JSON от бэкенда часто сжимаются в одну строку. Вставьте их сюда, чтобы увидеть структуру и значения, а затем используйте инструмент HTTP-тестирования для более быстрого поиска проблем. Редактирование конфигов: форматируйте package.json, tsconfig.json и подобные файлы перед правкой, чтобы заметить пропущенные запятые или несовпадающие скобки. Анализ логов: форматируйте фрагменты JSON из логов, чтобы быстро найти аномальные поля и сообщения об ошибках. Миграция данных: экспортируйте JSON из NoSQL-базы, проверьте здесь полноту полей, а затем сожмите его с помощью инструмента сжатия JSON перед импортом в целевую систему.
Как пользоваться инструментом
Вставьте свой JSON в поле ввода слева, выберите отступ в 2 или 4 пробела и нажмите Форматировать, чтобы получить красивый вывод. Нажмите Сжать, чтобы убрать все пробелы и получить JSON в одну строку. Переключитесь в древовидный вид, чтобы изучать вложенные структуры с помощью сворачивания/разворачивания. Результат можно скопировать в буфер обмена или скачать как файл .json. Если входные данные не являются валидным JSON, инструмент подсветит точную строку и столбец для быстрого исправления.
Советы и приёмы преобразования
Как преобразовать JSON в TypeScript / Java / Go?
При интеграции API сопоставление ответа JSON с определениями типов экономит время. Сначала отформатируйте и проверьте JSON здесь, чтобы не переносить неверную структуру в типы. Затем сопоставьте поля: в TypeScript строка → string, число → number, логическое значение → boolean, вложенные объекты → interface, а массивы используют тип элемента; в Java поля отображаются на POJO, в Go — на поля struct, не забывая делать первую букву заглавной для экспорта. Два частых подводных камня: целые числа длиннее 16 цифр выходят за безопасный диапазон JavaScript, поэтому типизируйте их как string или bigint; а необязательные поля API помечайте опциональными (?).
Как преобразовать JSON в XML / YAML / CSV?
Эти форматы обладают разной выразительностью, поэтому проверьте совместимость структуры перед преобразованием:
- JSON → XML: сопоставьте пары ключ-значение тегам, а массивы — повторяющимся тегам; экранируйте
<,&и>как XML-сущности. - JSON → YAML: YAML 1.2 — это надмножество JSON, поэтому большинство парсеров читают JSON напрямую; при обратном преобразовании помните, что YAML чувствителен к отступам.
- JSON → CSV: работает только для плоского массива объектов, где ключи становятся заголовками; вложенные объекты нужно сначала развернуть (например,
{"a":{"b":1}}превращается в столбецa.b). - Проверяйте до и после: убедитесь, что JSON валиден здесь, затем проверьте целевой формат после преобразования, чтобы не потерять экранирование или точность чисел.
Как отсортировать ключи JSON?
Отсортированные ключи делают примеры документации API аккуратными, а различия между ответами — более наглядными. В JavaScript рекурсивная сортировка в одну строку выглядит так: const sortKeys = o => Array.isArray(o) ? o.map(sortKeys) : Object.fromEntries(Object.keys(o).sort().map(k => [k, sortKeys(o[k])])). Обратите внимание: стандарт JSON (RFC 8259) не гарантирует порядок ключей; современные парсеры JS и Python 3.7+ сохраняют порядок вставки как деталь реализации. Сортировка нужна только для читаемости и сравнения — не полагайтесь на неё в бизнес-логике.
Почему длинные числа после форматирования оканчиваются нулём?
Большинство онлайн-форматировщиков JSON, включая этот, опираются на JSON.parse, который разбирает числа как числа с плавающей точкой двойной точности IEEE 754. Предел безопасных целых — 253-1 (16 цифр, 9007199254740991). Числа из 17 и более цифр (номера заказов, Snowflake ID, ID пользователей соцсетей) могут незаметно потерять точность и окончиться нулём. Проверьте сами: вставьте {"id":12345678901234567890} и отформатируйте. Рекомендованное решение — сериализовать длинные ID как строки на транспортном уровне (например, аннотации строковой сериализации в Java или библиотека json-bigint в JS) либо использовать безпотерный парсер, сохраняющий исходный текст. Передача длинных ID строками — отраслевой стандарт.
Распространённые синтаксические ошибки JSON
Если форматирование завершилось ошибкой, скорее всего, вы наступили на одну из этих типичных проблем. Этот инструмент сообщает точную строку и столбец, чтобы вы могли быстро исправить её:
- Ключи без кавычек:
{name: "x"}следует записывать как{"name": "x"}— ключи JSON должны быть строками в двойных кавычках. - Одинарные кавычки: в JSON строки используют только двойные кавычки; замените
'hello'на"hello". - Лишняя запятая в конце: после последнего элемента запятая не допускается, поэтому
[1, 2,]— ошибка. - Комментарии: стандартный JSON не поддерживает
//или/* */; этот инструмент может удалить комментарии перед форматированием. - Регистр логических значений: используйте только строчные
true,falseиnull.
Что делать, если китайские символы отображаются как \uXXXX?
При вставке JSON китайские символы могут превратиться в последовательности \uXXXX (например, \u7b80\u7f8e для 简美). Это не повреждение — это Unicode-экранирование, использующее \u и четыре шестнадцатеричные цифры. Обычно так бывает, потому что API принудительно выдал ASCII-безопасный вывод или строка была сериализована таким образом.
Чтобы восстановить читаемый текст, вставьте его в этот инструмент и нажмите Форматировать. Стандартная реализация JSON.parse автоматически преобразует \uXXXX обратно в исходные символы. Если нужно обратное — превратить текст в \u-экранирование для устаревших систем — инструмент тоже поддерживает это. Примеры:
{"name":"\u7b80\u7f8e\u5de5\u5177"}форматируется в{"name":"简美工具"}.- Если вы видите длинную строку символов
\u, скорее всего, экранирование двойное; форматируйте слой за слоем. - При отладке «искажённого» китайского сначала определите, является ли это Unicode-экранированием (
\uXXXX) или настоящей проблемой кодировки, например UTF-8, прочитанной как GBK.
Современные браузеры и большинство языков (включая JSON.stringify в JavaScript) по умолчанию сохраняют китайские символы как есть и экранируют их в \u только при необходимости ASCII-безопасности. Этот инструмент показывает оба варианта, чтобы вы могли подстроиться под нужную спецификацию интерфейса.
Часто задаваемые вопросы
Изменяет ли форматирование мои данные?
Нет. Форматирование JSON лишь корректирует отступы, переносы строк и пробелы. Оно не меняет ключи, значения или структуру данных, поэтому смысл данных до и после форматирования полностью совпадает.
Безопасен ли этот форматировщик JSON? Не утекут ли мои данные?
Да, безопасен. Всё форматирование, сжатие и проверка выполняются полностью в вашем браузере. Ваши данные никогда не загружаются на какой-либо сервер.
В чём разница между форматированием и сжатием?
Форматирование добавляет отступы и переносы строк, делая JSON читаемым. Сжатие убирает все пробелы и переносы, превращая JSON в одну компактную строку и уменьшая размер файла для передачи. Инструмент поддерживает оба режима — просто переключите отступ или нажмите кнопку «Сжать».
Какие ошибки находит валидатор?
Типичные ошибки: несовпадающие скобки или кавычки, отсутствующие или лишние запятые, ключи без кавычек, комментарии (в стандартном JSON не допускаются) и запятые в конце. Инструмент указывает точную строку и столбец, чтобы помочь быстро исправить ошибку.
В чём разница между древовидным и текстовым видом?
Древовидный вид показывает JSON как сворачиваемые узлы — это удобно для быстрого просмотра сложных вложенных данных. Текстовый вид отображает отформатированный исходный текст, что лучше для копирования или построчного сравнения. Переключаться можно в любой момент, а в древовидном виде доступно сворачивание/разворачивание одним нажатием.
Чем форматирование JSON отличается от форматирования XML?
JSON использует фигурные и квадратные скобки для выражения иерархии, а XML — вложенные теги. JSON компактнее и эффективнее передаётся, поэтому стал стандартным форматом современных веб-API. Наш инструмент сосредоточен на форматировании и проверке JSON, включая удаление комментариев и обработку экранирования, и также может сжать JSON в компактную однострочную форму.
Что делать, если большой файл JSON тормозит?
Если файл JSON больше 1 МБ, проверьте, нет ли в нём лишних пробелов или комментариев. JSON меньше 500 КБ обычно форматируется мгновенно в браузере. Скорость можно улучшить, сначала сжав, а затем отформатировав. Для очень больших выгрузок, например из базы данных, разбейте ввод на части или предварительно обработайте утилитой командной строки jq.
В чём разница между массивами и объектами JSON и как их форматировать?
Объекты JSON используют фигурные скобки {} для пар ключ-значение, где каждый ключ — строка в двойных кавычках. Массивы JSON используют квадратные скобки [] для упорядоченного списка значений: строк, чисел, логических значений, объектов или массивов. Инструмент форматирует и объекты, и массивы, поддерживает разворачивание в дереве и выводит каждый элемент массива на отдельной строке для удобной проверки.
Как восстановить китайские символы из экранирования \uXXXX?
Это последовательность Unicode-экранирования. Например, "\u7b80\u7f8e" — это 简美. Это не повреждённый текст, а китайский символ, закодированный как \u плюс четыре шестнадцатеричные цифры. Инструмент разбирает его стандартным JSON.parse и автоматически восстанавливает исходный китайский. Если вы видите лишь длинную строку символов \u, возможно, экранирование двойное; вставьте сюда и форматируйте слой за слоем.
Станут ли китайские символы «кракозябрами» после форматирования? Нужно ли их экранировать?
Нет, они не превратятся в кракозябры, и экранировать их вручную не нужно. Современные браузеры и большинство языков, включая JSON.stringify в JavaScript, по умолчанию сохраняют китайские символы как есть и не принуждают их к \uXXXX. Экранируйте их только когда принимающая система явно требует ASCII-безопасный вывод. Инструмент позволяет видеть оба варианта, чтобы соответствовать нужной спецификации.
Как найти поле в файле JSON на десятки тысяч строк?
Используйте два подхода вместе: сначала сверните слои в древовидном виде, чтобы сузить область, или нажмите Ctrl+F в текстовом виде, чтобы найти имя поля. Узнав путь, постройте выражение JSONPath, например $.store.book[0].title, и извлеките значение через библиотеку JSONPath в коде или консоли браузера. Форматировать заранее настоятельно рекомендуется, ведь найти поля в сжатом JSON в одну строку почти невозможно.
Можно ли преобразовать JSON в Excel или SQL?
Массив объектов хорошо подходит для CSV или Excel, где ключи становятся заголовками столбцов, а каждый объект — строкой. Преобразование в SQL обычно означает генерацию инструкций CREATE TABLE или INSERT из JSON, для чего вложенные структуры нужно сначала развернуть. Какое бы преобразование вы ни выполняли, сначала отформатируйте и проверьте JSON здесь и подтвердите типы полей, чтобы не занести «грязные» данные.