Надеюсь, я смогу найти помощь в этом вопросе.
Я использую React Native и пытаюсь получить некоторые данные из API под названием Feiertage-API (https://feiertage-api.de/), который в основном возвращает (должен возвращать) официальные праздники в Германии.
Пытаясь использовать fetch в реакции native, дает мне ответ вроде этого:
Response {
"_bodyBlob": Blob {
"_data": Object {
"blobId": "49C4AD4B-4648-44DB-AED7-7654EB78EF7A",
"name": "api",
"offset": 0,
"size": 487,
"type": "application/json",
},
},
"_bodyInit": Blob {
"_data": Object {
"blobId": "49C4AD4B-4648-44DB-AED7-7654EB78EF7A",
"name": "api",
"offset": 0,
"size": 487,
"type": "application/json",
},
},
"headers": Headers {
"map": Object {
"access-control-allow-origin": Array [
"*",
],
"content-type": Array [
"application/json",
],
"date": Array [
"Tue, 31 Jul 2018 07:17:51 GMT",
],
"server": Array [
"nginx",
],
"x-powered-by": Array [
"PHP/7.0.31, PleskLin, PleskLin",
],
},
},
"ok": true,
"status": 200,
"statusText": undefined,
"type": "default",
"url": "https://feiertage-api.de/api/?jahr=2019&nur_land=hb",
}
Мой запрос на выбор выглядит следующим образом:
fetch('https://feiertage-api.de/api/?jahr=2019&nur_land=hb')
.then(response => console.log(response) )
.catch(error => console.log(error));
GET-Параметры: - jahr = 2019 (за год, я думаю, это очевидно) - nur_land = hb (это возвращает мне только данные состояния, однажды давая обрезание в качестве параметра)
Существует также возможность получить JSONP, добавив параметр get-parameter 'callback = mycallbackname'
Если вы попытаетесь показать такие данные, как: console.log(response.json())
Я получаю:
Promise {
"_40": 0,
"_55": null,
"_65": 0,
"_72": null,
}
То, что я ожидаю увидеть, - это именно те данные, которые показаны здесь → https://feiertage-api.de/api/?jahr=2019&nur_land=hb
Итак, как я могу извлечь данные из ответа {....}?
Вы должны вызвать метод.json() для этого ответа.
fetch('https://feiertage-api.de/api/?jahr=2019&nur_land=hb')
.then(response => response.json() )
.then(data => console.log(data) )
.catch(error => console.log(error));
response.json()
возвращает обещание, поэтому вы должны либо дождаться его, либо заключить его в.then()