• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja Fetch(), pobieranie danych

0 głosów
781 wizyt
pytanie zadane 19 marca 2020 w JavaScript przez niezalogowany

Hej, mam problem z pobraniem danych z API. 
Pobieram te dane:

 "Country": "Poland",
    "Temperature": {
      "Metric": {
        "Value": 11.6,
        ....
             fetch(api)
                    .then(response => {
                   return response.json();
               })
                    .then(data => {
                      const LocalizedName = data.Country; 
                   });

Nie wiem jak mogę pobrać wartość z pola Value, które znajduje się w "Metric", z góry dziękuję za wszelkie rady :)

2 odpowiedzi

0 głosów
odpowiedź 19 marca 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

Trochę temat mylący ale wczoraj odpowiadałem na podobne pytanie 

0 głosów
odpowiedź 19 marca 2020 przez Tomek Sochacki Ekspert (227,490 p.)
rozumiem, że wyrzuca Ci jakiś błąd, ale jaki dokładnie? Może nie masz w response tego pola, co Ci pokazuje jak próbujesz normalnie pobrać Temperature.Metric.Value? Nie leci gdzieś tam undefined?
komentarz 19 marca 2020 przez niezalogowany

Jest dokładnie tak jak przypuszczasz, próbuję pobrać wartość z pola Value:

let Metric = data.Temperature;
let Value = data.Metric

console.log(Value); //tutaj dostaję undefined
console.log(data.Temperature.Metric.Value); //w tym przypadku:
Uncaught (in promise) TypeError: Cannot read property 'Metric' of undefined

   Dopiero raczkuję w tym temacie, ale od kilku godzin męczę się z tym, nie mam pojęcia jak dobrać się głębiej do tego elementu "Value"

 

komentarz 19 marca 2020 przez Tomek Sochacki Ekspert (227,490 p.)
no to musisz zdebugować dlaczego masz tam undefined... zobacz najpierw co leci faktycznie w response z endpointu w devtoolsach i sprawdź co leci w data po przewaleniu na json(). To nam da jakiś punkt wyjścia.
komentarz 19 marca 2020 przez niezalogowany

Jak zawsze człowiek szuka błędów w najtrudniejszych rzeczach, a popełnia go w tych najprostszych. Obiekt data, jest zwracany jako tablica blush

komentarz 20 marca 2020 przez Tomek Sochacki Ekspert (227,490 p.)
bywa czasem i tak :) Ja w 99% przypadków robię tak, że najpierw obsługuję sobie wysłanie requestu i sprawdzam na środowisku testowym czy na pewno back-end zwraca mi to, czego się spodziewam.

Dopiero potem koduję całą logikę związaną ze zwrotką. Chyba, że np. jakaś usługa odpowiedzialna za ten endpoint nie jest jeszcze gotowa no to pracuję na mockach.

Generalnie już nie raz zdarzyło mi się, że teoretycznie był umówiony jakiś kontrakt z back-endem, a okazuje się, że jednak pozmieniali nazwy pól czy w ogóle strukturę zwrotki :) Takie zycie...

Podobne pytania

0 głosów
1 odpowiedź 480 wizyt
pytanie zadane 4 września 2017 w JavaScript przez UltraSF Stary wyjadacz (11,740 p.)
+1 głos
2 odpowiedzi 1,427 wizyt
0 głosów
1 odpowiedź 201 wizyt
pytanie zadane 8 lipca 2019 w JavaScript przez precell Początkujący (470 p.)

93,604 zapytań

142,529 odpowiedzi

322,997 komentarzy

63,092 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...