JSON avec PHP

Ce chapitre explique comment encoder et décoder des objets JSON à l'aide du langage de programmation PHP. Commençons par préparer l'environnement pour démarrer notre programmation avec PHP pour JSON.

Environnement

Depuis PHP 5.2.0, l'extension JSON est intégrée et compilée en PHP par défaut.

Fonctions JSON

Fonction Bibliothèques
json_encode Renvoie la représentation JSON d'une valeur.
json_decode Décode une chaîne JSON.
json_last_error Renvoie la dernière erreur survenue.

Encodage de JSON en PHP (json_encode)

La fonction PHP json_encode () est utilisée pour encoder JSON en PHP. Cette fonction renvoie la représentation JSON d'une valeur en cas de succès ou FALSE en cas d'échec.

Syntaxe

string json_encode ( $value [, $options = 0 ] )

Paramètres

  • value- La valeur en cours de codage. Cette fonction fonctionne uniquement avec les données encodées en UTF-8.

  • options - Cette valeur facultative est un masque de bits composé de JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT.

Exemple

L'exemple suivant montre comment convertir un tableau en JSON avec PHP -

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
?>

Pendant l'exécution, cela produira le résultat suivant -

{"a":1,"b":2,"c":3,"d":4,"e":5}

L'exemple suivant montre comment les objets PHP peuvent être convertis en JSON -

<?php
   class Emp {
      public $name = "";
      public $hobbies  = "";
      public $birthdate = "";
   }
	
   $e = new Emp();
   $e->name = "sachin";
   $e->hobbies  = "sports";
   $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
   $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));

   echo json_encode($e);
?>

Pendant l'exécution, cela produira le résultat suivant -

{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}

Décodage de JSON en PHP (json_decode)

La fonction PHP json_decode () est utilisée pour décoder JSON en PHP. Cette fonction renvoie la valeur décodée de json au type PHP approprié.

Syntaxe

mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

Paramètres

  • json_string - C'est une chaîne codée qui doit être des données codées UTF-8.

  • assoc - Il s'agit d'un paramètre de type booléen, lorsqu'il est défini sur TRUE, les objets retournés seront convertis en tableaux associatifs.

  • depth - C'est un paramètre de type entier qui spécifie la profondeur de récursivité

  • options - Il s'agit d'un masque de bits de type entier de décodage JSON, JSON_BIGINT_AS_STRING est pris en charge.

Exemple

L'exemple suivant montre comment PHP peut être utilisé pour décoder des objets JSON -

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>

Lors de l'exécution, il produira le résultat suivant -

object(stdClass)#1 (5) {
   ["a"] => int(1)
   ["b"] => int(2)
   ["c"] => int(3)
   ["d"] => int(4)
   ["e"] => int(5)
}

array(5) {
   ["a"] => int(1)
   ["b"] => int(2)
   ["c"] => int(3)
   ["d"] => int(4)
   ["e"] => int(5)
}