json_encode retourne un objet vide
bonjour, j'ai un problème avec la fonction json_encode,
Code:
1 2 3 4
|
$vectClass=$cdi->getClassByParameters($_SESSION["Context"]["Year"], $_SESSION["Context"]["School"]);
var_dump($vectClass[0]);
echo json_encode($vectClass[0]); |
et voilà le resultat :
pour le var_dump
Code:
1 2
|
object(Entity\Classe)#5 (4) { ["id":"Entity\Classe":private]=> string(1) "3" ["school":"Entity\Classe":private]=> string(4) "2019" ["year":"Entity\Classe":private]=> string(5) "INSIM" ["option":"Entity\Classe":private]=> string(10) "Sécurité" } |
et pour json_encode :
alorsqu'il faut avoir quelque chose du genre {id :3, school:2019, etc}.
d'où vient le problème?
j'ai auto-résolu le problème
le problème vient du fait que mes attributs sont private, json_encode ne peut pas les voir, donc elle les mets tous aux valeurs par default.
solution :
dans ma classe:
Code:
1 2 3 4 5 6 7 8 9
|
class ma_class implements JsonSerializable
{
...
public function jsonSerialize()
{
return (object)get_object_vars($this);
}
} |
code d'encodage :
Code:
1 2
|
echo json_encode($vectClass[0]->jsonSerialize()); |
:mouarf::mouarf::mouarf::mouarf:
merci à moi-même :ptdr::ptdr: