Jak získat data z json_decode v php

Pavel10

Jak získat data z json_decode v php
« kdy: 18. 02. 2018, 22:57:22 »
Ahoj, může někdo prosím poradit?

Kód: [Vybrat]
$data = file_get_contents ( ... ) ;
$obj = json_decode ( $data ) ;

var_dump ( $obj ) ;
Výsledek
Kód: [Vybrat]
array(1) {
  [0]=>
  object(stdClass)#1 (18) {
    ["id"]=>
    string(7) "aaaaaaaa"
    ["name"]=>
    string(7) "aaaaaaaa"
    ["text"]=>
    string(3) "aaa"
    ["num"]=>
    string(1) "1"
    ["eval"]=>
    string(7) "1111111"
  }
}

Jak mám vypsat třeba položku id? Zkoušel jsem $obj->id ale požadovaný výsledek nedostanu. Děkuji moc za pomoc.


fifi

Re:Jak získat data z json_decode v php
« Odpověď #1 kdy: 18. 02. 2018, 23:18:19 »
Kód: [Vybrat]
$obj[0]->id

Pavel10

Re:Jak získat data z json_decode v php
« Odpověď #2 kdy: 18. 02. 2018, 23:28:34 »

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Jak získat data z json_decode v php
« Odpověď #3 kdy: 18. 02. 2018, 23:35:03 »
To co psal fifi by mělo být správně. Nemáš tam někde překlep?

Pár typů jak to řešit:

Zkus použít print_r() místo var_dump(). Má (někdy) čitelnější výstup.

Ten dump ti říká, že v $obj je pole. Takže zkus dumpnout jen první prvek toho pole:

var_dump($obj[0])

Pak se ujisti, co tam máš, a můžeš se posunout na další úroveň.

Pavel10

Re:Jak získat data z json_decode v php
« Odpověď #4 kdy: 18. 02. 2018, 23:54:11 »
Díky funguje to takto
Kód: [Vybrat]
$obj[0][id]


Re:Jak získat data z json_decode v php
« Odpověď #5 kdy: 19. 02. 2018, 09:51:02 »
Díky funguje to takto
Kód: [Vybrat]
$obj[0][id]
Pokud to takhle funguje tak je dobré ještě použít uvozovky pro klíč pole.
Kód: [Vybrat]
$obj[0]['id']

WerK

Re:Jak získat data z json_decode v php
« Odpověď #6 kdy: 19. 02. 2018, 10:31:55 »
Doporučuju dát true jako druhý parametr pro json_decode, pak to vrací jako asociativní pole. Nechápu, proč to není defaultně. Viz http://php.net/manual/en/function.json-decode.php