Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Pavel10 18. 02. 2018, 22:57:22
-
Ahoj, může někdo prosím poradit?
$data = file_get_contents ( ... ) ;
$obj = json_decode ( $data ) ;
var_dump ( $obj ) ;
Výsledek
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.
-
$obj[0]->id
-
$obj[0]->id
Vrací NULL
-
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ň.
-
Díky funguje to takto
$obj[0][id]
-
Díky funguje to takto
$obj[0][id]
Pokud to takhle funguje tak je dobré ještě použít uvozovky pro klíč pole.
$obj[0]['id']
-
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