{ } · 2 / 4 / tab · minify
Форматирование и проверка JSON
Форматирование JSON добавляет отступы в компактный JSON: документ в 60 байт вырастает до 86 байт с 2 пробелами и до 102 байт с 4. Вставьте JSON, чтобы получить отформатированный или минифицированный текст либо строку и столбец первой ошибки.
- {"a": 1,} → 1:8
- 12345678901234567890 → 12345678901234567000
- 60 B → 86 B (2) → 102 B (4)
Всё выполняется в этой вкладке, ничего не загружается. Парсер следует RFC 8259, поэтому комментарии, одинарные кавычки, лишние запятые в конце и ключи без кавычек считаются ошибками.
Scanned by NortonTM Safe Web
Коротко
- Цена
- Без оплаты
- Аккаунт
- Не нужен
- Стандарт
- RFC 8259 (JSON)
- Ограничения
- 5 MB входных данных, 512 уровней вложенности
- Вывод
- 2 пробела, 4 пробела, табуляция или минификация, ключи по желанию отсортированы
- Загрузка
- Нет — текст остаётся во вкладке вашего браузера
Ошибки JSON и точность чисел
Эти значения получены тем же парсером, который использует страница. Строки и столбцы считаются с 1.
| Документ | Код причины | Строка:столбец |
|---|---|---|
| {"a": 1,} | trailing_comma | 1:8 |
| {'a': 1} | single_quotes | 1:2 |
| [1, 2 | unexpected_end | 1:6 |
| {"a": 01} | bad_number | 1:8 |
| {"a": "x\q"} | bad_escape | 1:9 |
| {"a": 1 "b": 2} | missing_comma | 1:9 |
| Число как записано | Значение, которое возвращает JSON.parse |
|---|---|
| 12345678901234567890 | 12345678901234567000 |
| 9007199254740993 | 9007199254740992 |
| 1.0000000000000001 | 1 |
| 1E400 | Infinity |
Как отформатировать JSON
Вставьте JSON
Введите или вставьте в поле ввода JSON-документ размером до 5 MB. Там уже есть пример, чтобы вы сначала увидели результат.
Выберите вывод
Выберите 2 пробела, 4 пробела, табуляцию или минифицированный вид. Отметьте флажок, чтобы отсортировать ключи каждого объекта по кодовым единицам.
Скопируйте или исправьте
Скопируйте или скачайте результат. Если 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.