Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Pavel10 18. 02. 2018, 22:57:22

Název: Jak získat data z json_decode v php
Přispěvatel: Pavel10 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.
Název: Re:Jak získat data z json_decode v php
Přispěvatel: fifi 18. 02. 2018, 23:18:19
Kód: [Vybrat]
$obj[0]->id
Název: Re:Jak získat data z json_decode v php
Přispěvatel: Pavel10 18. 02. 2018, 23:28:34
Kód: [Vybrat]
$obj[0]->id
Vrací NULL
Název: Re:Jak získat data z json_decode v php
Přispěvatel: BoneFlute 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ň.
Název: Re:Jak získat data z json_decode v php
Přispěvatel: Pavel10 18. 02. 2018, 23:54:11
Díky funguje to takto
Kód: [Vybrat]
$obj[0][id]
Název: Re:Jak získat data z json_decode v php
Přispěvatel: Ondřej Vaniš 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']
Název: Re:Jak získat data z json_decode v php
Přispěvatel: WerK 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