JSON и схемы

Ошибка «Unexpected end of JSON input»: причины, значение и как исправить

Ошибка «Unexpected end of JSON input» означает, что парсер дошел до конца строки, хотя все еще ожидал значение, закрывающую кавычку или скобку.

Опубликовано

Что означает ошибка «Unexpected end of JSON input»

Это сообщение указывает на синтаксический обрыв данных, а не на логическую ошибку бизнес-кода. Проблема может возникать при сетевом обрыве, некорректном стриминге или пустом теле HTTP-ответа.

Пустой ответ сервера и статус 204 No Content

Попытка вызвать response.json() на пустом теле ответа всегда вызывает эту ошибку. Всегда проверяйте статус ответа и длину тела перед парсингом.

JSON.parse("") // Ошибка: Unexpected end of JSON input

Незакрытые фигурные или квадратные скобки

Если объект или массив оборвался на середине (например, { "items": [1, 2, 3), парсер сообщит о неожиданном конце входных данных.

{"items":[1,2,3]

Незакрытые строковые кавычки

Пропущенная закрывающая кавычка превращает весь последующий синтаксис в часть строки, пока файл не закончится.

{"name":"Александр}

Обрезанные API-ответы и сбои потоков

  • Убедитесь, что поток данных (Stream) полностью завершил чтение до вызова парсера.
  • Проверьте заголовок Content-Length и ошибки декомпрессии gzip/br.
  • Логируйте размер полученных байтов, но не логируйте чувствительные данные пользователей.

Проверьте пример

Воспроизведите незавершённый вложенный объект

Полезная нагрузка обрывается до закрытия строки и структуры объекта.

{"user":{"id":1,"name":"Ada"

Ожидаемый результат: Инструмент сообщит о некорректном JSON, не изменяя данные и не пытаясь угадать пропущенную структуру.

Проверьте пример

Проверьте завершённый объект

Сравните те же данные после закрытия обоих уровней объекта.

{"user":{"id":1,"name":"Ada"}}

Ожидаемый результат: JSON проходит проверку и может быть безопасно минифицирован.

Проверьте ваш JSON

Валидация и форматирование JSON

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

Открыть JSON Minifier →