Przemek19
26.05.2017, 10:26:19
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/2Jest 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ę!
nospor
26.05.2017, 10:35:09
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
26.05.2017, 10:40:17
Właśnie o to chodzi. Wpisuję taki kod np.:
$query = file_get_contents('http://steamcommunity.com/profiles/76561198277379274/inventory/json/730/2'); $data = json_decode('$query');
echo $data->zmienna['zmienna'];
Takie coś nie działa.
nospor
26.05.2017, 10:43:01
$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
26.05.2017, 11:05:46
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
26.05.2017, 11:07:42
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
26.05.2017, 11:14:22
Np. takie prostsze api:
http://api.nbp.pl/api/exchangerates/rates/...ay/?format=jsonJak można z niego wyciągnąc kurs usd? Próbowałem w taki sposób ale nie działa:
$query = file_get_contents('http://api.nbp.pl/api/exchangerates/rates/c/usd/today/?format=json'); $data = json_decode($query);
echo "Kurs usd: ".$data->rates[bid
];
nospor
26.05.2017, 11:17:03
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
26.05.2017, 11:20:29
Dzięki za pomoc. Dzięki Tobie już to rozumiem
nospor
26.05.2017, 11:26:38
Prosze

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
26.05.2017, 11:30:26
Ok. Na pewno będę tak robił. Ja tak mam, że najwięcej uczę się z przykładów
nospor
26.05.2017, 11:32:00
print_r daje ci
przyklad, jak wygladaja dane
Przemek19
26.05.2017, 13:59:58
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
26.05.2017, 14:05:35
$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
26.05.2017, 14:07:00
Ok, po raz kolejny wielkie dzięki za pomoc
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.