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

Czy to jest JSON object ? JSON.parse: unexpected end of data at line 1 column 1 of the JSON data

Object Storage Arubacloud
0 głosów
2,019 wizyt
pytanie zadane 9 stycznia 2020 w JavaScript przez wojciuszek Nowicjusz (180 p.)
zmienione kategorie 9 stycznia 2020 przez Arkadiusz Waluk

Próbuje wyświetlić w konsoli obiekt który wyświetla mi się następująco

url: domena.com/dzial1

["Ksiegowosc","Kadry","Place"]

jednak otrzymuje błąd:

JSON.parse: unexpected end of data at line 1 column 1 of the JSON data

czy coś źle rozumiem? może to nie jest JSON i inaczej mam to sparsować ?

 

mój kod wygląda następująco:

 

fetch('http://domena/dzial1' , 
{
mode: 'no-cors',
method: 'GET',
headers: {  'Accept-Encoding': 'gzip, deflate', 'Content-Type': 'application/json'},

  
  })
  .then(response => response.json())
  .then(json => console.log(json))

  .catch(error => alert(error.message)); 

 

2 odpowiedzi

0 głosów
odpowiedź 9 stycznia 2020 przez niezalogowany
Dlatego, że w odpowiedzi masz tablicę, a nie obiekt json.
komentarz 9 stycznia 2020 przez adrian17 Ekspert (346,320 p.)
Odpowiedź `["Ksiegowosc","Kadry","Place"]` jest jak najbardziej poprawnym JSONem.
komentarz 9 stycznia 2020 przez niezalogowany
O, myślałem, że poprawny obiekt json zaczyna się i kończy klamrami { }.
1
komentarz 9 stycznia 2020 przez adrian17 Ekspert (346,320 p.)

Według składni, nawet `1` jest poprawnym JSONem.

A po stronie JSa:

https://developer.mozilla.org/en-US/docs/Web/API/Body/json

A Promise that resolves to a JavaScript object. This object could be anything that can be represented by JSON — an object, an array, a string, a number...

komentarz 9 stycznia 2020 przez niezalogowany
Ok. Dzięki za zwrócenie uwagi.
komentarz 9 stycznia 2020 przez wojciuszek Nowicjusz (180 p.)

@korsarz, to w takim razie co robię nie tak ?

komentarz 10 stycznia 2020 przez niezalogowany

Spróbuj zmienić:

["Ksiegowosc","Kadry","Place"]

na np. coś takiego:

{
 dzialy: ["Ksiegowosc","Kadry","Place"]	
}

 

komentarz 12 stycznia 2020 przez wojciuszek Nowicjusz (180 p.)
dzięki.

a co jeśli api nie jest po mojej stronie i nie mam na to wpływu?

mogę to zmienić w "locie" ?
0 głosów
odpowiedź 10 stycznia 2020 przez adrian17 Ekspert (346,320 p.)
Spróbuj wypisać `response.text()` zamiast `response.json()` - upewnisz się, że faktycznie dostajesz z API to co powinieneś dostać.

Podobne pytania

0 głosów
1 odpowiedź 1,325 wizyt
0 głosów
2 odpowiedzi 6,987 wizyt
+1 głos
2 odpowiedzi 644 wizyt

92,696 zapytań

141,607 odpowiedzi

320,114 komentarzy

62,055 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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...