Convertir du JSON en PHP [Résolu]

Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
- - Dernière réponse : nicomilville
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
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"
Afficher la suite 

Votre réponse

20/24 réponses

Meilleure réponse
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
3
Merci
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"

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_Noizet
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
1
Merci
moi, je ne sais pas...
Commenter la réponse de nicomilville
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
1
Merci
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++
Commenter la réponse de nicomilville
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
0
Merci
Salut,

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

a++
 
Commenter la réponse de nicomilville
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
0
Merci
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"
Commenter la réponse de cs_Noizet
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
0
Merci
Et si je passe mon urldecode($_REQUEST[]) j'ai une erreur : Object of class stdClass could not be converted to string

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

"NoiZet"
Commenter la réponse de cs_Noizet
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
0
Merci
essaye de remplacer : $json->decode par json_decode !

a++
Commenter la réponse de nicomilville
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
0
Merci
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"
Commenter la réponse de cs_Noizet
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
0
Merci
  // décodage
  $input = urldecode($_REQUEST['monVariable']);
  $value = $json->decode($input);
  echo("ESSAI 2" . $value); --> ESSAI 2

a++
Commenter la réponse de nicomilville
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
0
Merci
Ca change rien j'ai tourjours l'erreur!

"NoiZet"
Commenter la réponse de cs_Noizet
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
0
Merci
je suis a cour d'idée !

a++
Commenter la réponse de nicomilville
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
0
Merci
Ah zut, merci quand même...

"NoiZet"
Commenter la réponse de cs_Noizet
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
0
Merci
De rien !

a++
Commenter la réponse de nicomilville
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
0
Merci
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"
Commenter la réponse de cs_Noizet
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
0
Merci
des idées ?

pour faire quoi ?

Si la réponse vous convient, pensez : Réponse accèpté !
Un forum...
Commenter la réponse de nicomilville
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
0
Merci
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.
Commenter la réponse de malalam
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
0
Merci
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"
Commenter la réponse de cs_Noizet
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
0
Merci
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.
Commenter la réponse de malalam
Messages postés
91
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
24 octobre 2008
0
Merci
C'est bon le problème est résolu!

Merci à vous

"NoiZet"
Commenter la réponse de cs_Noizet

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.