Русский
Как пользоваться форматированием JSON
Этот инструмент проверяет JSON и красиво форматирует его сразу после вставки, так что можно прочитать ответ API, исправить файл конфигурации или привести в порядок тестовые данные, ничего не устанавливая.
- Вставьте JSON в поле ввода или нажмите Загрузить пример, чтобы попробовать.
- Выберите отступ: 2 пробела (обычно в проектах на JavaScript), 4 пробела (обычно в Python и Java) или Таб.
- Выберите Форматировать для удобочитаемого результата или Минифицировать для максимально компактного текста.
- Нажмите Копировать или Скачать .json, чтобы сохранить результат в файл.
Если JSON содержит ошибку, вместо результата появится сообщение с номером строки и столбца и небольшим фрагментом, где знак ^ указывает точное место.
Частые ошибки в JSON и как их исправить
JSON похож на JavaScript, но его правила гораздо строже. Большинство ошибок «невалидный JSON» вызывают эти промахи:
| Неверно | Верно | Почему |
|---|---|---|
| {'name': 'Ana'} | {"name": "Ana"} | Строки и ключи заключаются в двойные кавычки. |
| {name: "Ana"} | {"name": "Ana"} | Ключи должны быть в кавычках. |
| [1, 2, 3,] | [1, 2, 3] | После последнего элемента запятая не ставится. |
| {"a": 1 "b": 2} | {"a": 1, "b": 2} | Элементы разделяются запятыми. |
| {"n": 007} | {"n": 7} | Числа не могут начинаться с нулей. |
| {"ok": True} | {"ok": true} | true, false и null пишутся строчными буквами. |
| // comment | (удалите) | Комментарии не входят в стандарт JSON. |
Когда ошибка указывает на строку, настоящая ошибка часто находится прямо перед ней. Например, пропущенную запятую парсер замечает, только дойдя до следующего значения.
Как работает форматирование
Инструмент читает текст посимвольно в соответствии со стандартом JSON (RFC 8259). По ходу чтения он строит отформатированный результат и останавливается на первом нарушенном правиле. Поскольку значения никогда не преобразуются в числа JavaScript, очень большие числа, например 64-битные ID, и длинные десятичные дроби сохраняются в точности так, как вы их написали, а escape-последовательности вроде \u00e9 остаются нетронутыми.
Показатели под результатом отображают размер результата, количество ключей во всех объектах и максимальную глубину вложенности. Глубокая вложенность не проблема для машин, но может намекать на то, что структура сложнее, чем нужно.
Форматировать или минифицировать?
- Форматируйте, когда данные будут читать люди: при отладке, код-ревью, в документации, в файлах конфигурации под контролем версий.
- Минифицируйте, когда данные читают только машины: тела запросов, значения в базе данных или переменной окружения, файлы, которые отдаются браузеру.
Вот один и тот же объект в обоих вариантах:
{
"id": 7,
"tags": [
"a",
"b"
]
}
В вебе сжатие gzip или Brotli и так хорошо убирает лишние пробелы, поэтому минификация важна скорее для ограничений на объём хранения и размер запроса, чем для скорости загрузки.
Конфиденциальность и ограничения
JSON обрабатывается только во вкладке вашего браузера; ничего не загружается и не записывается в логи. Файлы размером в несколько мегабайт обрабатываются без проблем, хотя на медленных телефонах форматирование очень больших данных занимает некоторое время. И всё же без необходимости не вставляйте действующие пароли или закрытые ключи ни на какой сайт, включая этот.
Частые вопросы
Как отформатировать JSON онлайн?
Вставьте JSON в поле ввода. Он сразу проверяется и форматируется с отступом в 2 пробела; при желании переключитесь на 4 пробела или табы, затем скопируйте результат или скачайте его как файл .json.
Почему мой JSON невалидный?
Чаще всего причина в одинарных кавычках вместо двойных, лишней запятой после последнего элемента, пропущенной запятой между элементами, комментариях и ключах без кавычек. Сообщение об ошибке показывает строку и столбец первой проблемы.
Что значит минифицировать JSON?
Минификация удаляет все пробелы и переносы строк вне строковых значений. Данные остаются точно такими же, но файл становится меньше, что удобно для API, значений конфигурации и хранения.
Допускает ли JSON комментарии или висячие запятые?
Нет. Стандартный JSON (RFC 8259) не допускает ни того, ни другого. Некоторые инструменты принимают JSONC или JSON5, где это разрешено, но строгий парсер, как в браузерах и большинстве API, их отклонит.
Мой JSON отправляется на сервер?
Нет. Разбор и форматирование происходят полностью в браузере на JavaScript. Данные не покидают ваше устройство, поэтому инструмент подходит для API-ключей и данных клиентов, хотя секретами всё равно лучше не делиться.