инструменты / валидатор JSON
Валидатор JSON
Это проверка json онлайн: вставляете файл или его кусок, а мы по каждой находке показываем строку и столбец, объясняем, чем она грозит, и говорим, как её починить. Чтобы проверить JSON, входить и регистрироваться не нужно. Кнопка «Причесать» - это форматирование JSON: разложит готовый файл по строкам с отступами. Находки не урезаем до трёх для затравки: показываем до пятисот за один прогон, а если их больше, прямо об этом скажем.
Эта страница не ходит в сеть вовсе: разбирается то, что вы вставили, и ровно в том виде, в каком вставили, - до 512 КБ за раз. Файл никуда не сохраняется.
Причёсанный JSON
Что именно мы проверяем - двадцать правил, полный список ниже на этой же странице.
Предупреждения
Что мы проверяем и чего не обещаем
Валидация JSON у нас держит двадцать правил разбора - не всю грамматику стандарта и не подмену ей. Нашли что-то по этим правилам - покажем строку, столбец и вырезку места. Не нашли - прямо так и скажем: «по нашим 20 правилам ошибок не нашли», а не «файл исправен».
Чем это лучше, чем просто открыть файл в редакторе
Обычный разбор JSON - тот, что стоит в PHP, Python и браузере, - отдаёт ровно одну ошибку и почти всегда без места: «Syntax error» и всё. Починив её, вы узнаёте о второй только со следующего захода, и так по кругу. Мы разбираем файл до конца и показываем все находки сразу, каждую со строкой, столбцом и куском текста вокруг неё.
Двадцать правил, по которым мы проверяем
Ошибки - файл не прочитает строгий разборщик
- Запятая перед закрывающей скобкой
- Запятая не на своём месте
- Между элементами нет запятой
- Скобка открыта и не закрыта
- Закрывающая скобка без парной открывающей
- Скобки разного вида
- Строка в одинарных кавычках
- Ключ без кавычек
- Строка открыта и не закрыта
- Между ключом и значением нет двоеточия
- Двоеточие не на своём месте
- Неверная последовательность после обратной косой черты
- Управляющий символ внутри строки
- Такого значения в JSON нет
- Число записано не по правилам
- Комментарий внутри JSON
- Посторонний знак
- Лишнее после конца документа
Предупреждения - не запрещено, но однажды выйдет боком
- Файл начинается с метки BOM
- Ключ повторяется в одном объекте
Валидатор JSON и валидатор HTML - разные проверки
Эта страница смотрит только данные - файл JSON: кавычки, запятые, скобки, числа и коды символов. Код самой страницы - вёрстку и стили - смотрит валидатор HTML. А если JSON у вас внутри страницы и это микроразметка, идите в валидатор микроразметки: там мы не только разберём JSON-LD, но и проверим сами типы и поля Schema.org.
Вопросы
Файл открывается в редакторе, а у вас ошибки
Редакторы кода и браузеры давно прощают JSON вольности, которых стандарт не допускает: висячую запятую в конце списка, одинарные кавычки, комментарии. Открывается не значит годится: строгий разборщик на сервере откажет, и узнаете вы об этом уже на боевом.
Почему «Причесать» не работает на сломанном файле
Потому что причесать сломанное - значит угадать, чего вы хотели: где пропала кавычка и что означала висячая запятая. Мы не гадаем. Сначала почините ошибки по находкам, потом кнопка заработает.
Мне нужен не разбор ошибок, а просто форматтер JSON
Это та же кнопка «Причесать»: она отформатирует готовый файл - разложит по строкам, выставит отступы в два пробела и сохранит порядок ключей. Значения печатаются дословно, как вы их написали: 1.50 не станет 1.5, 1e3 не превратится в 1000, а длинное целое не потеряет последние цифры. Обычное форматирование через разбор и обратную сборку переписывает такое молча.
Повтор ключа - это ошибка или нет
Стандарт его не запрещает, но и поведение при повторе не определяет. Почти все разборщики оставляют ПОСЛЕДНЕЕ значение, а первое молча теряется - и человек об этом не знает. Поэтому у нас это предупреждение, а не ошибка: файл прочитается, но не так, как вы задумали.
Что вы делаете с моим файлом
Ничего. Он разбирается в ответ на запрос и никуда не сохраняется: ни в базу, ни в файл, ни в журнал.
Находок ноль, а данные всё равно не читаются
Мы держим двадцать правил разбора JSON, то есть смотрим на синтаксис. Правильные ли у вас поля, те ли имена и тот ли смысл - это уже про вашу задачу, а не про формат, и такого мы не знаем.
А проверить по схеме JSON Schema
Пока нет. Здесь мы проверяем синтаксис: то, из-за чего файл не читается вовсе. Проверку по схеме сделаем отдельно, если она будет нужна.