PHP -5 / Json - Manipuler objets
Kergad
-
the_animal Messages postés 74 Statut Membre -
the_animal Messages postés 74 Statut Membre -
Bonjour,
J'essai de recupérer les informations venant d'une appli iphone en Json.
Voici mon retour avec cette requete:
resultat:
Par exemple j aimerai extraire eles variables FirstName et Mobile pour les stocker dans une DB.
Merci de m aider, je galere un peu sur les objet php....
J'essai de recupérer les informations venant d'une appli iphone en Json.
Voici mon retour avec cette requete:
$encode=$_POST['contacts']; $obj=json_decode($encode); if ($obj == TRUE) print_r($obj->Object);
resultat:
Array
(
[0] => stdClass Object
(
[Contatct] => stdClass Object
(
[FirstName] => John
[LastName] =>
[Number] => stdClass Object
(
[Mobile] => 13434567890
)
)
[ID] => 0
)
)
Par exemple j aimerai extraire eles variables FirstName et Mobile pour les stocker dans une DB.
Merci de m aider, je galere un peu sur les objet php....
3 réponses
-
ton variable est un array d'objets.
Donc pour avoir les elements, il faut donc parcourir d'abord le tableau (foreach) puis on aura la valeur de chaque attribut d'objet par "->"
voici le code:
foreach($obj->Object as $value){ echo "First Name:".$value->FirstName; echo "mobile:".$value->Number->Mobile; } -
Merci beaucoup, effectivement c'était bien la solution.
Autre soucis pour les sous sous objet?$encode=$_POST['contacts']; $obj=json_decode($encode); echo $obj->UID; if ($obj->Object == TRUE) { foreach($obj->Object as $contact){ foreach($contact as $value) { echo "<br>First Name: ".$value->FirstName.""; echo "<br>Last Name: ".$value->LastName.""; foreach($value->Number as $num) { echo "<br>mobile:".$num->Mobile; echo "<br>iPhone:".$num->iPhone; } foreach($value->email as $mail) { echo "<br>Home:".$mail->Home; echo "<br>Work:".$mail->Work; } } } }
Mais mes numero ne s affiche pas et j ai une erreur par la suite :/C5E45732-E7A3-5D50-BD3D-E43B469F4055<br> First Name: jhon<br> Last Name: korki<br> mobile:<br> iPhone:<br> mobile:<br> iPhone:<br>Home:<br>Work:<br>Home:<br>Work:
ou voir une Invalid argument supplied for foreach()
Comment extraire les numéros et email sans savoir en amont le nom des champs (home, work,...) -
comme je te l'ai déjà ennoncé en haut, pour accéder au mobile on fait:
$contact->Number->Mobile
Il n'y a pas d'array donc on ne doit pas parcourir par foreach.