2017-09-12 2 views
0

Je veux encoder/décoder un tableau en utilisant JSON. Comme j'ai php 5.1.6, j'utilise le paquet de pear (http://pear.php.net/pepr/pepr-proposal-show.php?id=198). En utilisant ce que je peux coder mais je suis incapable de décoder j'ai essayé de lire le document, mais ne comprenait pas anything.Here mon code:Comment décoder JSON en PHP en utilisant le paquet Services_JSON de pear (Erreur fatale de catchable de PHP: L'objet de la classe stdClass n'a pas pu être converti en chaîne)

<?php include("/home/gpreeti/php/JSON.php"); 
$json = new Services_JSON(); 
$marks = array(
      "mohammad" => array (
       "physics" => 35, 
       "maths" => 30, 
       "chemistry" => 39 
      ), 

      "qadir" => array (
       "physics" => 30, 
       "maths" => 32, 
       "chemistry" => 29 
      ), 

      "zara" => array (
       "physics" => 31, 
       "maths" => 22, 
       "chemistry" => 39 
      ) 
     ); 
$marks=$json->encode($marks); 
print"$marks\n"; 
$marks = $json->decode($marks); 
#var_dump($marks); 
print"$marks"; 
?> 

En cours d'exécution, je reçois ce

{"mohammad":{"physics":35,"maths":30,"chemistry":39},"qadir":{"physics":30,"maths":32,"chemistry":29},"zara":{"physics":31,"maths":22,"chemistry":39}} 
PHP Catchable fatal error: Object of class stdClass could not be converted to string in /servers/scratch05/gpreeti/php_pgms/test_json.php on line 26 

Aide S'il vous plaît, Merci

+0

Salut, Il est parce que vous avez essayé d'utiliser 'print' pour imprimer un objet,' imprimer 'ne fonctionne que pour la chaîne, essayez d'utiliser' print_r ($ marks) 'à la place. –

+0

Je ne peux pas le convertir à sa forme initiale en aucune façon .. – confused

+0

Selon le message d'erreur, il a été décodé en tableau avec succès, il suffit d'utiliser 'print_r' pour l'imprimer. –

Répondre

0

Lorsque vous avez Array/objet dont vous avez besoin pour l'afficher à l'aide print_r/var_dump. impression est utilisé pour la chaîne

$marks=$json->encode($marks); 
print"$marks\n"; 
$marks = $json->decode($marks); 
#var_dump($marks); 
print_r($marks); //change this line 

EDIT Pour tableau, vous devez faire des modifications suivantes:

$json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE); 
$marks = $json->decode($marks); 
+0

mais je reçois comme objet pas un tableau que vous pouvez seestdClass Object ( [mohammad] => stdClass Object ( [physique] => 35 [ mathématiques] => 30 [chimie] => 39 ) [qadir] => stdClass objet ( [physique] => 30 [mathématiques] => 32 [chimie] => 29 ) [zara] => objet stdClass ( [physics] => 31 [mathématiques] => 22 [chimie] => 39 ) ) – confused

+0

modifier chèque @confused –

+0

Merci Mr.Desai, il a travaillé :) – confused