Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]Odczyt json
Przemek19
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.02.2017
Skąd: Polska

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Przemek19
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.02.2017
Skąd: Polska

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Przemek19
post
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.02.2017
Skąd: Polska

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Przemek19
post
Post #7





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.02.2017
Skąd: Polska

Ostrzeżenie: (0%)
-----


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.  
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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;


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Przemek19
post
Post #9





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.02.2017
Skąd: Polska

Ostrzeżenie: (0%)
-----


Dzięki za pomoc. Dzięki Tobie już to rozumiem smile.gif

Ten post edytował Przemek19 26.05.2017, 11:22:20
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Przemek19
post
Post #11





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.02.2017
Skąd: Polska

Ostrzeżenie: (0%)
-----


Ok. Na pewno będę tak robił. Ja tak mam, że najwięcej uczę się z przykładów tongue.gif
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




print_r daje ci przyklad, jak wygladaja dane tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Przemek19
post
Post #13





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.02.2017
Skąd: Polska

Ostrzeżenie: (0%)
-----


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

Ten post edytował Przemek19 26.05.2017, 14:06:03
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$data->{1};

Jednak w takim wypadku proponuje rozbic json na tablice a nie obiekty, Wystarczy dac TRUE dla jako drugi parametr dla json_decode


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Przemek19
post
Post #15





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 1.02.2017
Skąd: Polska

Ostrzeżenie: (0%)
-----


Ok, po raz kolejny wielkie dzięki za pomoc biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:06