К содержанию
CheckcraftСкачать
Практический сценарий

Unexpected token is not valid JSON: что значит ошибка и как её найти

Ошибка говорит, что текст, который вы разбираете как JSON, им не является. Посмотрите на символ после слов Unexpected token: он почти всегда сразу называет причину.

Checkcraft ·

Поможем с первой проверкой →

Что означает символ в сообщении

Если стоит < и дальше <!DOCTYPE или <html, сервер вернул HTML-страницу вместо JSON: ошибку, страницу входа или главную страницу сайта. Если в сообщении [object Object] или старое Unexpected token o, в JSON.parse передали уже готовый объект. Если undefined, переменная с ответом пустая. Если Unexpected end of JSON input, ответ пустой или обрезан. Если Expected property name или Unexpected token }, в самом JSON лишняя запятая, одинарные кавычки или название поля без кавычек.

Как быстро найти место ошибки

В сообщении браузера обычно есть номер позиции или строка и столбец. Вставьте текст в валидатор JSON на этом сайте: он покажет строку, символ и причину на русском. Если ошибка возникла при запросе к API, откройте инструменты разработчика в браузере, вкладку Network, нужный запрос и вкладку Response: там видно, что на самом деле прислал сервер.

Как не получить ошибку в коде

Прежде чем вызывать response.json(), проверьте код ответа и заголовок Content-Type. Тогда вместо загадочной ошибки разбора вы увидите понятное сообщение: сервер ответил 404 или вернул HTML.

const response = await fetch('/api/orders/42');
const type = response.headers.get('content-type') || '';
if (!response.ok || !type.includes('application/json')) {
  const text = await response.text();
  throw new Error(`HTTP ${response.status}, ${type}: ${text.slice(0, 200)}`);
}
const order = await response.json();

Если ошибка в Postman

В Postman ошибка разбора появляется, когда тест вызывает pm.response.json(), а ответ не JSON. Посмотрите код ответа и вкладку Body: часто это страница ошибки сервера или ответ без тела. В отчёте Checkcraft то же место видно сразу: код ответа, заголовки и тело рядом с правилами, которые не совпали.

Следующий шаг

Повторите это на своём API

Checkcraft — настольная программа: сохраняет проверки ответа API без кода и показывает, что не совпало. Начните с учебного примера, затем подставьте свои обезличенные данные. Free работает на Windows и Linux без ограничения срока.

Скачать FreeКак получить и запустить приложение

Скачивание без регистрации и почты, архив готов за пару минут. Состав бесплатной версии опубликован на странице тарифов.

Документация

Ошибки JSON.parse на MDN

Начните с примера по ссылкам и сопоставьте результат с требованием своей проверки.

Можно спросить человека

Поможем с первой проверкой

Расскажите, что хотите проверить или на каком шаге остановились. Поможем запустить Checkcraft, подобрать пример и разобраться с первым прогоном. Можно написать до скачивания.

Telegram-группа открытая: не публикуйте пароли, токены и конфиденциальные рабочие данные. Для первого вопроса достаточно описания задачи.

Можно написать напрямую support@checkcraft.ru

Без регистрации. Ответим по email. Это обращение в поддержку, а не подписка на рассылку.