Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Odczyt json
Forum PHP.pl > Forum > Przedszkole
Przemek19
Witajcie drodzy użytkownicy forum! Jestem świeżakiem w PHP. Wiem jak odczytać plik json, ale mam mały problem. Otóż mój plik json ma w sobie nawiasy kwadratowe (tablice) i nie wiem w jaki sposób można je odczytać. Przykładowe api: http://steamcommunity.com/profiles/7656119...tory/json/730/2
Jest dużo poradników na temat tablic w json, lecz nie za bardzo to rozumiem. Mógłby ktoś przedstawić jakiś przykładowy kod json (z tablicami) i kod w php jak go odczytać. Przepraszam za mój język, ale pisałem to na szybko. Za wszelkie odpowiedzi dziękuję! biggrin.gif
nospor
Tablica w JSON to nic innego jak tablica w php czy js. Odczytujesz ja tak samo jak tablice w php czy js. W czym problem konkretnie?
Przemek19
Właśnie o to chodzi. Wpisuję taki kod np.:
  1.  
  2. $query = file_get_contents('http://steamcommunity.com/profiles/76561198277379274/inventory/json/730/2');
  3. $data = json_decode('$query');
  4.  
  5. echo $data->zmienna['zmienna'];
  6.  


Takie coś nie działa. sad.gif
nospor
$data = json_decode('$query');
moze byc laskawie spojrzal wpierw, czy $data w ogole zawiera co ma zawierac...

var_dump($data);

Jak juz to opanujesz, to potem polecam lekture manuala w dziale "stringi"
Masz tam wyjasnione czemu kod
'$query'
jest bez sensu

powinno byc tak:
$data = json_decode($query);

Jak juz opanujesz te podstawy, dopiero bierz sie za obrobke JSON
Przemek19
Wiem, tak też wpisałem. Wiem, że w apostrofach nie można dawać zmiennej. Ja to napisałem tylko na forum. Nawet tego nie zauważyłem. W moim kodzie nie ma apostrofów.
nospor
Wiem wiem ale pisze przez co mam bzdurny kod i ludzie marnuja czas na jego sprawdzanie...

To pokaz teraz, jeszcze raz dokladnie jaki masz kod.
Przemek19
Np. takie prostsze api: http://api.nbp.pl/api/exchangerates/rates/...ay/?format=json

Jak można z niego wyciągnąc kurs usd? Próbowałem w taki sposób ale nie działa:
  1.  
  2. $query = file_get_contents('http://api.nbp.pl/api/exchangerates/rates/c/usd/today/?format=json');
  3. $data = json_decode($query);
  4.  
  5. echo "Kurs usd: ".$data->rates[bid];
  6.  
nospor
rates to tablica obiektow. Skoro to tablica, to ci przeciez mowilem, ze masz to traktowac jak normalna tablice w php

Naprawde tak ciezko zrobic
print_r($data);
by zobaczyc co tam jest skoro nie rozumiesz json tekstowego?

$data->rates[0]->bid;
Przemek19
Dzięki za pomoc. Dzięki Tobie już to rozumiem smile.gif
nospor
Prosze smile.gif

W ramach rewanzu bardzo ladnie prosze, bys na przyszlosc robil
print_r($data);
To naprawde pokazuje jak wygladaja dane i latwiej zrozumiec jaka jest sciezka do elementu, ktorego sie szuka
Przemek19
Ok. Na pewno będę tak robił. Ja tak mam, że najwięcej uczę się z przykładów tongue.gif
nospor
print_r daje ci przyklad, jak wygladaja dane tongue.gif
Przemek19
Mam jeszcze jedno pytanie.
Jak mam np. taki kod: {"1":"a"}

Jak mogę odczytać co jest w 1? Wpisując takie coś $data->1; dostaję taki error:
Parse error: syntax error, unexpected '1' (T_DNUMBER), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in C:\xampp\htdocs\nauka\index.php on line 142
nospor
$data->{1};

Jednak w takim wypadku proponuje rozbic json na tablice a nie obiekty, Wystarczy dac TRUE dla jako drugi parametr dla json_decode
Przemek19
Ok, po raz kolejny wielkie dzięki za pomoc biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.