Convertir du JSON en PHP [Résolu]

Signaler
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Bonjour,
Je vais vous expliquer mon problème:
Je reçois de mon formulaire ceci  (c'est du JSON):

{"id":"id1","txt":"text1","img":"page.gif","imgopen":"folderopen.gif","imgclose":"folder.gif","imgselected":"","imgopenselected":"","imgcloseselected":"","open":true,"check":0,"canhavechildren":false,"acceptdrop":true,"last":false,"editable":true,"checkbox":true,"items":[{"id":"id2","txt":"text2","img":"folder.gif","imgopen":"folderopen.gif","imgclose":"folder.gif","draggable":1,"imgselected":"","imgopenselected":"","imgcloseselected":"","open":true,"check":0,"canhavechildren":false,"acceptdrop":true,"last":false,"editable":true,"checkbox":true,"ondrop":true,"items}]}

J'aimerai le décoder pour avoir une variable php.

Dans mon fichier php :

$json = new Services_JSON();
  // Test de conversion
  $value = array(1, 2, 'foo');
  $output = $json->encode($value);
  print("ESSAI 1 " . $output); --> ESSAI 1 [1,2,"foo"]


  // décodage
  $input = $_REQUEST['monVariable'];
  $value = $json->decode($input);
  echo("ESSAI 2" . $value); --> ESSAI 2

Est-ce que qqun pourrait me dire pourquoi il ne me retourne pas de valeur quand je décode?

Merci!

"NoiZet"

24 réponses

Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
Ben je peux pas vraiment mettre de solution, car c'étai juste ce que j'ai écrit !! c'est juste que je faisai mon echo avant mon var_dump et sa faisait planter !!

"NoiZet"
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
moi, je ne sais pas...
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
essais :

var_dump($value);

je crois que ça retourne un tableau donc un echo sur un tableau est impossible alors qu'un var_dump...

a++
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
Salut,

fait un echo de ta variable $_REQUEST[]; pour voir si elle n'est pas vide !

a++
 
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
Oui oui elle a quelque chose dedans:
echo $_REQUEST[] --> 7B%22id%22%3A%22idBranch%22%2C%22txt%22%3A%22text%22%2C%22img%22%3A%22page.gif%22%2C%22imgopen%22%3A%22folderopen.gif%22%2C%22imgclose%22%3A%22folder.gif%22%2C%22imgselected%22%3A%22%22%2C%22imgopenselected%22%3A%22%22%2C%22imgcloseselected%22%3A%22%22%2C%22open%22%3Atrue%2C%22check%22%3A0%2C%22canhavechildren%22%3Afalse%2C%22acceptdrop%22%3Atrue%2C%22last%22%3Afalse%2C%22editable%22%3Atrue%2C%22checkbox%22%3Atrue%2C%22items%22%3A%5B%7B%22id ect...

et quand je fais urldecode$_REQUEST[]) --> {"id":"id1","txt":"text1","img":"page.gif","imgopen":"folderopen.gif","imgclose":"folder.gif","imgselected":"","imgopenselected":"","imgcloseselected":"","open":true,"check":0,"canhavechildren":false,"acceptdrop":true,"last":false,"editable":true,"checkbox":true,"items":[{"id":"id2","txt":"text2","img":"folder.gif","imgopen":"folderopen.gif","imgclose":"folder.gif","draggable":1,"imgselected

"NoiZet"
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
Et si je passe mon urldecode($_REQUEST[]) j'ai une erreur : Object of class stdClass could not be converted to string

"NoiZet"
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
Si je fais un var_dump, il me met null car cette ligne ne foncitonne pas $value = $json->decode($input);

"NoiZet"
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
essaye de remplacer : $json->decode par json_decode !

a++
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
Sa marche pas non plus! est-ce que tu sais comment je peux enlever l'erreur : of class stdClass could not be converted to string

"NoiZet"
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
  // décodage
  $input = urldecode($_REQUEST['monVariable']);
  $value = $json->decode($input);
  echo("ESSAI 2" . $value); --> ESSAI 2

a++
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
Ca change rien j'ai tourjours l'erreur!

"NoiZet"
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
je suis a cour d'idée !

a++
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
Ah zut, merci quand même...

"NoiZet"
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
De rien !

a++
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
J'ai trouvé comment faire pour qu'il ne me retourne plus d'erreur et que la fonction décode marche --> j'ai mis la variable entre guillement. Mais du coup elle me retourne un string et non un tableau! Tu aurais pas encore des idées??

"NoiZet"
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
des idées ?

pour faire quoi ?

Si la réponse vous convient, pensez : Réponse accèpté !
Un forum...
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

la chaîne décodée que tu montres n'est pas complète. json_decode (je ne connais pas la classe que tu utilises sinon, je parle de la fonction native php) attends une chaîne json absolument irréprochable. Là, ce que tu montres ne l'est pas.
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
J'utilise la classe Services_JSON(). Tu entends quoi par un json absoluement irréprochable? Comment je peux faire pour que ma chaîne le devienne?

"NoiZet"
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
je ne sais pas comment tu la construits, mais il manque au moins une accolade à la fin. Et je ne l'ai pas regardée en détail, c'est juste le truc qui m'a sauté aux yeux.
json est très sensible...enfin...firefox est par exemple plus zen à ce niveau, mais une chaîne json fonctionnant avec Firefox ne fonctionnera pas forcément avec IE si sa syntaxe n'est pas parfaite.
C'est pareil pour php.
Vas voir des tutos sur json pour voir à quoi doit ressembler une chaîne json.
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
24 octobre 2008
3
C'est bon le problème est résolu!

Merci à vous

"NoiZet"