PHP -5 / Json - Manipuler objets

Kergad -  
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:

$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....

A voir également:

3 réponses

the_animal Messages postés 74 Statut Membre 18
 
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;
}
2
Kergad
 
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,...)
0
the_animal Messages postés 74 Statut Membre 18
 
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.
0