JSON-форматтер и валидатор онлайн
Вставьте JSON — сервис проверит синтаксис, покажет ошибку с номером строки, отформатирует с нужным отступом или сожмёт в одну строку. Всё работает в браузере: данные никуда не отправляются.
Ожидание ввода
Что делает форматтер
Сервис разбирает текст через JSON.parse, проверяет синтаксис и заново
собирает документ с выбранным отступом. Если в JSON есть ошибка, вы увидите
сообщение с номером строки и символа — это быстрее, чем искать проблему глазами.
- форматирование с отступом 2 или 4 пробела либо табуляцией;
- минификация в одну строку — удобно для конфигов и API;
- сортировка ключей по алфавиту на всех уровнях;
- подсветка синтаксиса и подсчёт размера, ключей и глубины;
- копирование результата одной кнопкой.
Зачем проверять JSON
Большинство ошибок в API — это неверный JSON: лишняя запятая, одинарные кавычки,
комментарии или undefined. Формально такой текст выглядит почти
правильно, но строгий парсер его отвергает. Проверка до отправки запроса экономит
время на отладке.
Частые ошибки
- Запятая после последнего элемента объекта или массива.
- Одинарные кавычки вместо двойных.
- Комментарии
//и/* */— в JSON их нет. - Ключ без кавычек:
name: "value"вместо"name": "value". - Значения
undefined,NaNиInfinity— допустимы толькоnull, числа, строки, логические значения, объекты и массивы. - Лишняя запятая или незакрытая скобка — самая частая причина ошибки «Unexpected end of JSON input».
JSON в PHP
В PHP для разбора используйте json_decode() с флагом
JSON_THROW_ON_ERROR — так ошибка станет исключением, а не молчаливым
null.
$data = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
// Проверка типов после разбора
if (!is_array($data) || !isset($data['items'])) {
throw new RuntimeException('Неожиданная структура JSON');
}
При сборке ответа помогает json_encode() с
JSON_UNESCAPED_UNICODE и JSON_UNESCAPED_SLASHES:
кириллица и ссылки останутся читаемыми.
Вопросы
- Передаются ли данные на сервер?
- Нет. Разбор и форматирование выполняются в браузере. Текст не отправляется на сайт и не сохраняется.
- Почему большие числа теряют точность?
JSON.parseпревращает числа в JavaScript-числа с плавающей точкой. Целые длиннее 15–16 цифр могут измениться — храните идентификаторы и деньги строками.- Чем JSON отличается от объекта JavaScript?
- Ключи всегда в двойных кавычках, нет комментариев, функций и
undefined. Поэтому не любой объект JavaScript можно без потерь превратить в JSON.