Je suis en train de boucler à travers un objet JSON (DATA)
contenant trois objets JSON imbriqués (NEWUSERS
, NEWUSERDATA
, NEWRELATIONS
), en utilisant une fonction de commutation pour choisir la fonction appropriée pour insérer MySQL. Chaque fonction logée dans le commutateur est appelée une fois lorsque je passe en boucle dans les touches, mais elles semblent TOUJOURS ne recevoir que l'objet NEWRELATIONS
. Par conséquent, les fonctions échouent à l'exception de insertNewTestRelations
, la fonction destinée à recevoir l'objet NEWRELATIONS
. Je pense que la réponse doit me regarder en face, mais quelqu'un peut-il penser à la raison pour laquelle l'objet JSON est réutilisé?PHP n'itérer JSON emboîtés correctement
Lecture et itérer JSON
$json=json_decode($_SERVER['HTTP_JSON'],true);
$data=$json['DATA'];
foreach($data as $key=>$json_obj){
$result=null;
$result=$db->insertNewSwitch($key,$json_obj,$last_sync);
$response[$key.":errors"]=$result['errors'];
$response[$key.":successes"]=$result['successes'];
}
Fonction interrupteur
public function insertNewSwitch($key,$json_obj,$last_sync){
$result;
if($key="NEWUSERS"){
$result=$this->insertNewTestUsers($json_obj,$last_sync,$key);
}
if($key="NEWUSERDATA"){
$result=$this->insertNewTestUserdata($json_obj,$last_sync,$key);
}
if($key="NEWRELATIONS"){
$result=$this->insertNewTestRelations($json_obj,$last_sync,$key);
}
return $result;
}
Un problème est que votre instruction if sont ** ** assignent valeur plutôt que ** comparer les valeurs **: 'if ($ key =" NEWUSERS ") {' devrait être 'if ($ key ==" NEWUSERS ") {' –