php objet json lecture
J'ai une page web écrite en php où je reçois des informations sur l'utilisateur à partir de son lié dans le profil, grâce à liés à API. Il me donne l'suivante objet json. avec :
$user = json_decode($response);
méthode que j'ai décoder les suivantes objet json en $objet utilisateur.
{ "firstName": "Tolga", "lastName": "Evcimen", "skills": { "_total": 2, "values": [ { "id": 1, "skill": {"name": "Microsoft Office"} }, { "id": 2, "skill": {"name": "Microsoft Excel"} } ] } }
ce que je ne peux pas, c'est travailler avec ces valeurs, mes connaissances php est un peu faible, c'est pourquoi je ne sais pas comment faire pour lire des compétences ou quoi que ce soit d'autre. La seule chose que j'ai pu lire jusqu'à présent est :
$user->firstName , $user->lastName
mais je ne peux pas obtenir le reste avec la même approche 🙁
$user->skills->values[1]->skill->name, or $user->skills->_total
merci de me donner quelques renseignements au sujet de ces choses
- Vous obtenez le même à l'aide de $utilisateur['compétences'] au lieu de $utilisateur->compétences? Lors de l'utilisation de {}, vous n'êtes pas à créer de véritables objets PHP, mais des tableaux associatifs. Je voudrais utiliser $utilisateur['compétences']['values'][1]['compétence']['name']
var_dump($user)
vous permettra de voir la structure réelle de ce que vous obtenez en fonction json_decode. Ensuite, il sera trivial.- Une fois que vous l'avez dans
$user
faire unprint_r
ouvar_dump
de voir la structure - Fonctionne très bien pour moi avec le JSON que vous avez posté: codepad.org/RvYCLvNI. Nous ne pouvons pas vraiment vous aider si le code et tout le reste vous post fonctionne réellement.
->skills->values[1]->skill->name
travaille ici, si je le décoder chose...- Par défaut, JSON objets codés sont convertis en objets de la classe
stdClass
, pas de tableaux. php.net/manual/en/function.json-decode.php
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne:
Résultats:
Tester sur PHP violon: http://phpfiddle.org/main/code/x18-z6f
Je n'ai eu aucun problème avec cela, peut-être poster un exemple de code pour qu'on puisse voir où vous êtes allé mal.
Exemple:
De sortie:
merci beaucoup, il s'est avéré j'ai fait quelques autres erreurs dans le code, à la place de l'echo j'ai utilisé de l'impression, et un peu mélangé dans une mauvaise voie. c'est pourquoi je ne pouvais pas atteindre le bon comportement dans le code.
ne fonctionne pas 🙂
fonctionne très bien.
Remercie de vos préoccupations.