Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Odczytywanie wartości z JSONA
Forum PHP.pl > Forum > Przedszkole
poczatkujaca12
Mam plik JSONA, odczytuję go
  1. $data = file_get_contents($file);
  2. $tab = json_decode($data);

Struktura jest dość prosta:
  1. "issue": {
  2. "lang": [{
  3. "name": "PL",
  4. },
  5. "name": "DE",
  6. }]
  7. }

próbowałam się dostać do tych danych:
print $tab->issue->lang->name;
print $tab->issue->lang->0->name;
print $tab->issue->lang[0]->name;
print $tab->issue->lang->name[0];
ale nie działa
nospor
1) Zamien json na array a nie na obiekty
$tab = json_decode($data, true);

2) Patrzylas w ogole czy $tab zawiera poprawne dane?
print_r($tab);
poczatkujaca12
ma dobre dane...
a jak się dobrać wtedy do danych?
bo do issue name dostaję się
issue->name
nospor
Zamienilas na tablice jak prosilem?
Pokaz mi co zwraca ten print_r o ktory rowniez prosilem
poczatkujaca12
na razienie mogę zamienić na array bo do innych danych dostaję się poprzez obiekty...
typu: issue->name
print_r($tab->issue->lang) daje taki wynik (całe issue jest dość długie, $tab jeszcze dłuższe)
  1. Array ( [0] => stdClass Object ( [name] => PL [id] => 1 [disabled] => ) [1] => stdClass Object ( [name] => DE [id] => 2 [disabled] => ) )
nospor
Musisz sie chyba pobawic z {}. cos w ten desen
$tab->issue->lang{0}->name;
lub podobnie. Nie pamietam nigdy jak to mialo isc. Temu wole tablice wink.gif
viking
Ale przecież działa Twoje metoda przedostatnia tylko musi być najpierw poprawny json wink.gif
  1. $a = '{"issue": {
  2. "lang": [
  3. {
  4. "name": "PL"
  5. },
  6. {
  7. "name": "DE"
  8. }
  9. ]
  10. }}
  11. ';
  12.  
  13. $x = json_decode($a);
  14. var_dump($x->issue->lang[0]->name);
poczatkujaca12
Json jest poprawny, nie wiem dlaczego nie odczytywało mi wartości, ale faktycznie działa 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.