Convertir du JSON en PHP

Résolu
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 - 20 mai 2008 à 18:12
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 21 mai 2008 à 12:58
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

cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
21 mai 2008 à 12:46
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"
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 mai 2008 à 18:41
moi, je ne sais pas...
1
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 mai 2008 à 18:45
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++
1
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 mai 2008 à 18:21
Salut,

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

a++
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
20 mai 2008 à 18:29
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"
0
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
20 mai 2008 à 18:38
Et si je passe mon urldecode($_REQUEST[]) j'ai une erreur : Object of class stdClass could not be converted to string

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

"NoiZet"
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 mai 2008 à 18:54
essaye de remplacer : $json->decode par json_decode !

a++
0
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
20 mai 2008 à 19:07
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"
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 mai 2008 à 19:14
  // décodage
  $input = urldecode($_REQUEST['monVariable']);
  $value = $json->decode($input);
  echo("ESSAI 2" . $value); --> ESSAI 2

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

"NoiZet"
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 mai 2008 à 19:22
je suis a cour d'idée !

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

"NoiZet"
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 mai 2008 à 19:49
De rien !

a++
0
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
20 mai 2008 à 19:56
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"
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
20 mai 2008 à 20:04
des idées ?

pour faire quoi ?

Si la réponse vous convient, pensez : Réponse accèpté !
Un forum...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 mai 2008 à 20:05
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.
0
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
20 mai 2008 à 20:16
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"
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 mai 2008 à 23:46
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.
0
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
21 mai 2008 à 11:56
C'est bon le problème est résolu!

Merci à vous

"NoiZet"
0
Rejoignez-nous