Introduction à JSON pour débutants PHP
1. Configuration de l'environnement
Dans les versions php5.2.0 et supérieures, l'extension JSON a été intégrée
2. Fonction josn()
json_encode Encodage JSON des variables
json_decode décode les chaînes au format JSON et les convertit en variables PHP
json_last_error return La dernière erreur survenue
json_encode
est utilisée pour encoder les variables JSON. Cette fonction renvoie les données JSON si elle est exécutée avec succès, sinon elle renvoie. FALSE
Syntaxe : string json_encode ( $value [, $options = 0 ] )
Paramètres :
value : La valeur à encoder. Cette fonction n'est valable que pour les données codées en UTF-8.
options : Masque binaire composé des constantes suivantes :
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 1 :Comment convertir un tableau PHP en données json
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>
L'exemple suivant montre comment convertir un objet PHP en données au format 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', strtotime("8/5/1974 12:20:03")); echo json_encode($e); ?>
json_decode
La fonction PHP json_decode() est utilisée pour décoder les chaînes au format JSON et les convertir en variables PHP.
Syntaxe
json_decode mixte ($json [,$assoc = false [, $profondeur = 512 [, $options = 0 ]] ])
Paramètres
json_string : chaîne JSON à décoder, doit être une donnée codée en UTF-8
assoc : Lorsque ce paramètre est TRUE, un tableau sera renvoyé, et lorsqu'il est FALSE, un objet sera renvoyé.
profondeur : paramètre de type entier, qui précise la profondeur de récursion.
options : masque binaire, actuellement seul JSON_BIGINT_AS_STRING est pris en charge.
Exemple
L'exemple suivant montre comment décoder les données JSON :
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; echo "<pre>"; var_dump(json_decode($json)); var_dump(json_decode($json, true)); echo "</pre>"; ?>