Перейти к содержимому

{ } · 2 / 4 / tab · minify

Форматирование и проверка JSON

Форматирование JSON добавляет отступы в компактный JSON: документ в 60 байт вырастает до 86 байт с 2 пробелами и до 102 байт с 4. Вставьте JSON, чтобы получить отформатированный или минифицированный текст либо строку и столбец первой ошибки.

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

Scanned by NortonTM Safe Web

Коротко

Цена
Без оплаты
Аккаунт
Не нужен
Стандарт
RFC 8259 (JSON)
Ограничения
5 MB входных данных, 512 уровней вложенности
Вывод
2 пробела, 4 пробела, табуляция или минификация, ключи по желанию отсортированы
Загрузка
Нет — текст остаётся во вкладке вашего браузера

Ошибки JSON и точность чисел

Эти значения получены тем же парсером, который использует страница. Строки и столбцы считаются с 1.

Первая найденная ошибка в неверном документе
ДокументКод причиныСтрока:столбец
{"a": 1,}trailing_comma1:8
{'a': 1}single_quotes1:2
[1, 2unexpected_end1:6
{"a": 01}bad_number1:8
{"a": "x\q"}bad_escape1:9
{"a": 1 "b": 2}missing_comma1:9
Числа, которые JSON.parse округляет
Число как записаноЗначение, которое возвращает JSON.parse
1234567890123456789012345678901234567000
90071992547409939007199254740992
1.00000000000000011
1E400Infinity

Как отформатировать JSON

1

Вставьте JSON

Введите или вставьте в поле ввода JSON-документ размером до 5 MB. Там уже есть пример, чтобы вы сначала увидели результат.

2

Выберите вывод

Выберите 2 пробела, 4 пробела, табуляцию или минифицированный вид. Отметьте флажок, чтобы отсортировать ключи каждого объекта по кодовым единицам.

3

Скопируйте или исправьте

Скопируйте или скачайте результат. Если JSON содержит ошибку, в сообщении указаны строка, столбец и причина, а курсор-стрелка отмечает место в проблемной строке.

Как работает форматирование JSON

Страница читает ваш текст собственным парсером грамматики JSON из RFC 8259, а затем записывает его обратно с выбранными отступами. Поскольку парсер входит в страницу, во всех браузерах одна и та же ошибка выводится одинаковым сообщением. Встроенный JSON.parse формулирует ошибки по-разному в Chrome, Firefox и Safari, и не все сообщения указывают строку и столбец.

Числа и экранированные последовательности в строках копируются ровно так, как вы их ввели. JSON.parse превращает 12345678901234567890 в 12345678901234567000, потому что число в JavaScript — это 64-битное число с плавающей запятой примерно с 15–17 значащими цифрами. Эта страница сохраняет все 20 цифр и сообщает, когда число было бы округлено. RFC 8259 говорит, что имена в объекте должны быть уникальными, поэтому повторяющиеся ключи сохраняются и отмечаются. Ограничения: 5 MB входных данных и 512 уровней вложенности.

Вопросы о форматировании JSON

Как отформатировать JSON онлайн?

Вставьте JSON в поле ввода. Отформатированный текст появится сразу, с 2 пробелами, 4 пробелами или табуляцией на каждый уровень. Пример в 60 байт становится 86 байтами с 2 пробелами и 102 байтами с 4 пробелами.

Что значит «unexpected token» и где моя ошибка?

Это значит, что парсер встретил символ, который грамматика JSON в этом месте не допускает. Страница называет причину, строку и столбец. Для {"a": 1,} она сообщает trailing_comma в строке 1, столбце 8.

Почему запятая в конце — ошибка в JSON?

Грамматика RFC 8259 требует значение после каждой запятой, поэтому [1, 2,] и {"a": 1,} недопустимы. Объектные литералы JavaScript принимают запятую в конце, а JSON — нет. Удалите последнюю запятую.

Можно ли использовать в JSON комментарии или одинарные кавычки?

Нет. В RFC 8259 нет комментариев, а строки и ключи используют только двойные кавычки. Форматы вроде JSON5 и JSONC допускают и то и другое, но это другие форматы, и эта страница считает их ошибками.

Меняет ли форматирование мои числа?

Нет. Числа и экранированные последовательности записываются обратно ровно так, как были введены. JSON.parse округлил бы 12345678901234567890 до 12345678901234567000, а эта страница сохраняет каждую цифру, поэтому при форматировании ничего не теряется.

Загружается ли мой JSON куда-нибудь?

Нет. Страница работает во вкладке вашего браузера и ничего не отправляет на сервер. После загрузки она работает и без сети. Предел ввода — 5 MB.