@savva09
Начинающий .NET-ер

Получил ошибку при парсинге json, но не могу найти где в json не такое поле. Как решить?

ошибка
Uncaught (in promise) SyntaxError: Unexpected token 'o', "[object Obj"... is not valid JSON
at JSON.parse ()
at run (setTasks.js:6:24)


вид из браузера:
spoiler
[{"id":"08dc111b-c255-4311-8464-c5793c2860ca","authorId":"d7ccdf51-374a-47c0-9a04-42ed71e74283","authorName":"savva","createdAt":"2024-01-09T19:03:30.187468","taskText":"Example task","completedAt":null},{"id":"08dc111b-c257-4a26-8e72-6523f99df151","authorId":"d7ccdf51-374a-47c0-9a04-42ed71e74283","authorName":"savva","createdAt":"2024-01-09T19:03:30.207837","taskText":"Example task","completedAt":null},{"id":"08dc111b-c257-4aaa-8fc2-7a849cb2d186","authorId":"d7ccdf51-374a-47c0-9a04-42ed71e74283","authorName":"savva","createdAt":"2024-01-09T19:03:30.208212","taskText":"Example task","completedAt":null},{"id":"08dc111b-c257-4ab8-8070-1ee34fa714dd","authorId":"d7ccdf51-374a-47c0-9a04-42ed71e74283","authorName":"savva","createdAt":"2024-01-09T19:03:30.208239","taskText":"Example task","completedAt":null},{"id":"08dc111b-c257-4ac9-85c3-229f59a60377","authorId":"d7ccdf51-374a-47c0-9a04-42ed71e74283","authorName":"savva","createdAt":"2024-01-09T19:03:30.208267","taskText":"Example task","completedAt":null},{"id":"08dc111c-402b-48bd-8c4a-a3822f0285b1","authorId":"8b0d598e-fca0-438d-9207-871e96488cb2","authorName":"savva","createdAt":"2024-01-09T19:07:01.307331+05:00","taskText":"Example task","completedAt":null},{"id":"08dc111c-402e-42eb-850b-94b5cc06e7ca","authorId":"8b0d598e-fca0-438d-9207-871e96488cb2","authorName":"savva","createdAt":"2024-01-09T19:07:01.3290369+05:00","taskText":"Example task","completedAt":null},{"id":"08dc111c-402e-43a0-8e28-16fe751ca66f","authorId":"8b0d598e-fca0-438d-9207-871e96488cb2","authorName":"savva","createdAt":"2024-01-09T19:07:01.3295525+05:00","taskText":"Example task","completedAt":null},{"id":"08dc111c-402e-43b0-86a2-ed45d8292271","authorId":"8b0d598e-fca0-438d-9207-871e96488cb2","authorName":"savva","createdAt":"2024-01-09T19:07:01.329584+05:00","taskText":"Example task","completedAt":null},{"id":"08dc111c-402e-43c4-81a2-1e657c110e6a","authorId":"8b0d598e-fca0-438d-9207-871e96488cb2","authorName":"savva","createdAt":"2024-01-09T19:07:01.3296159+05:00","taskText":"Example task","completedAt":null}]
ъ

код js setTasks
async function run() {
    const response = await fetch("https://localhost:7182/api/Tasking/GetAll/");

    const tasks = JSON.parse(await response.json());

    return tasks[0].id;
}

run().then(data => console.log(data[0].id));


Как видите в браузере никаких object o нет
  • Вопрос задан
  • 193 просмотра
Решения вопроса 4
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
-     const tasks = JSON.parse(await response.json());
+     const tasks = await response.json();
Ответ написан
Комментировать
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
Ты пытаешься спарсить js объект.

Здесь уже НЕ json.
await response.json()
Ответ написан
IvanU7n
@IvanU7n
а зачем уже спарсенный результат ещё раз парсить?
или
const tasks = JSON.parse(await response.text());
или
const tasks = await response.json();
Ответ написан
NikFaraday
@NikFaraday
Student full-stack Developer
Так вам пишет, что проблема при парсинге "[object Object]" (Который является строковым представлением JS объекта)

Вот стандартная структура для fetch get запроса:
let response = await fetch('https://url.address.com/routes/') <-- получаем "ответ"
let data = await response.json() <-- получаем данные в формает json


В вашем случае, вы этот объект data дальше пытаетесь пропарсить через JSON.parse(...).

Если вы учили JavaScript, вы должны знать, что [object Object] это строковое представление JS объекта, тогда у вас не было бы проблемы с поиском ошибки, но вы пропустили изучение JS и перешли сразу к api и запросам на api, отсюда и получаете результат
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы