← Все гайды

Проверка JSON на ошибки (валидатор JSON онлайн)

· 2 мин чтения

JSON

Как найти ошибку в JSON: строгая проверка синтаксиса с номером строки, типичные причины «Unexpected token» и чем проверка синтаксиса отличается от проверки по схеме.

«Unexpected token», «Unexpected end of JSON input» — такие сообщения обычно выдаёт приложение, которому достался испорченный JSON. Найти место ошибки в большом документе проще в редакторе, который проверяет синтаксис по мере ввода и показывает строку.

Как проверить JSON

  1. Откройте песочницу JSON и вставьте документ или откройте файл (Файл → Открыть файл…).
  2. Проверка запускается сама. Если ошибок нет, над редактором будет «Ошибок нет», справа — дерево документа.
  3. Если есть ошибки, строка подсвечивается, а под редактором появляется список с номерами строк. Щелчок по ошибке переводит курсор к ней.
Ошибка синтаксиса JSON подсвечена в строке
Ошибка отмечена в строке, список ошибок — под редактором

Что проверяется

Редактор проверяет JSON строго, по стандарту RFC 8259 — так, как его прочитает большинство серверов:

  • ключи и строки — только в двойных кавычках;
  • нет запятой после последнего элемента;
  • нет комментариев;
  • числа без ведущих нулей и без NaN/Infinity;
  • управляющие символы в строках экранированы (\n, \t);
  • после корневого значения нет лишнего текста.

Если вы правите конфигурацию, где комментарии допустимы (JSON5, JSONC в VS Code), строгая проверка их отметит — это ожидаемо.

Типичные ошибки и что они значат

СимптомПричина
Ошибка в строке после последнего элементависящая запятая [1, 2, ]
Ошибка на первом символе ключаключ без кавычек или в одинарных кавычках
Ошибка в конце документане закрыта скобка или кавычка выше по тексту
Ошибка внутри строкинеэкранированная кавычка или перенос строки

Синтаксис и схема — разные проверки

Корректный по синтаксису JSON может не соответствовать ожиданиям системы: не хватает обязательного поля, вместо числа строка. Это проверяется по JSON Schema — справа во вкладке Проверка по схеме. Как это сделать — в гайде «Проверка JSON по JSON Schema».

Пример

{
  "id": 42,
  "items": ["a", "b",],
  'status': "NEW"
}

Здесь две ошибки: висящая запятая после "b" и ключ в одинарных кавычках. Редактор отметит первую из них; после исправления — вторую. Корректный вариант:

{
  "id": 42,
  "items": ["a", "b"],
  "status": "NEW"
}

Вопросы и ответы

Ошибка указывает на строку, где всё правильно. Почему? Парсер замечает ошибку там, где ожидание нарушилось, а причина часто выше: незакрытая кавычка или скобка в предыдущих строках. Ищите от указанной строки вверх.

Как найти пропущенную скобку в большом документе? Поставьте курсор рядом со скобкой — парная подсветится. Сворачивание блоков слева от номеров строк тоже помогает: блок, который не сворачивается так, как ожидается, указывает на место ошибки.

Нужен ли JSON с комментариями (JSONC) — что делать? Строгий JSON их не допускает, и большинство API такие документы отклонят. Если конфигурация читается программой, которая понимает JSONC (например, настройки VS Code), сообщения о комментариях можно не учитывать.