Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Odczytywanie wartości z JSONA
poczatkujaca12
post
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 24.06.2010
Skąd: Warszawa

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


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
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




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);
Go to the top of the page
+Quote Post
poczatkujaca12
post
Post #3





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 24.06.2010
Skąd: Warszawa

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


ma dobre dane...
a jak się dobrać wtedy do danych?
bo do issue name dostaję się
issue->name

Ten post edytował poczatkujaca12 17.03.2021, 09:53:23
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




Zamienilas na tablice jak prosilem?
Pokaz mi co zwraca ten print_r o ktory rowniez prosilem
Go to the top of the page
+Quote Post
poczatkujaca12
post
Post #5





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 24.06.2010
Skąd: Warszawa

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


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] => ) )
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




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 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Ale przecież działa Twoje metoda przedostatnia tylko musi być najpierw poprawny json (IMG:style_emoticons/default/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);
Go to the top of the page
+Quote Post
poczatkujaca12
post
Post #8





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 24.06.2010
Skąd: Warszawa

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


Json jest poprawny, nie wiem dlaczego nie odczytywało mi wartości, ale faktycznie działa (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 19:23