PHPJSON
Qu'est-ce que JSON ?
· JSON fait référence à la notation d'objet JavaScript (JavaScript Object Notation)
· JSON est un format d'échange de données texte léger
· JSON est indépendant du langage *
· JSON est auto-descriptif et plus facile à comprendre
* JSON utilise la syntaxe JavaScript pour décrire les objets de données, mais JSON est toujours indépendant du langage et de la plate-forme. Les analyseurs JSON et les bibliothèques JSON prennent en charge de nombreux langages de programmation différents.
La configuration de l'environnement
a été intégrée dans php5.2.0 et supérieur.
Fonction JSON
| <🎜>< 🎜>Description<🎜><🎜> | ||||||||
json_encode | Oui Les variables sont codées en JSON | ||||||||
json_decode | Pour les chaînes au format JSON Décoder et convertir en variables PHP | ||||||||
json_last_error | Retour à la dernière occurrence Erreur |
json_encode
json_encode() est utilisé pour encoder des variables JSON. Cette fonction renvoie des données JSON si elle est exécutée avec succès, sinon elle renvoie FALSE.
Syntaxe
json_encode ($value,[,options = 0 ] )
Paramètre
· valeur : 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
· Puisque json n'accepte que UTF -8 caractères codés, donc les paramètres de json_encode() doivent être codés en UTF-8, sinon vous obtiendrez des caractères vides ou nuls. Une attention particulière doit être accordée à cela lorsque le chinois utilise le codage GB2312 ou que les langues étrangères utilisent le codage ISO-8859-1.
Exemple
L'exemple suivant démontre Comment convertir un tableau PHP en données au format JSON :
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>
Résultat de l'exécution du programme :
{"a":1,"b": 2,"c":3,"d":4,"e":5}
L'exemple suivant montre comment convertir des objets 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('Y-m-d h:i:s a', "2016/9/19 12:20:03 p"); $e->birthdate = date('Y-m-d h:i:s a', strtotime("2016/9/19 12:20:03")); echo json_encode($e); ?>
Résultats de l'exécution du programme :
{"name": "sachin", "loisirs": "sports", "date de naissance": "2016-09-19 12:20:03 pm"} $json [,$assoc = false [, $profondeur = 512 [, $options = 0 ]]]
json_decode
La fonction json_decode() est utilisée pour décoder les chaînes au format JSON et les convertir en variables PHP.
Syntaxe
json_decode ($json [,$assoc = false [, $profondeur = 512 [, $ options = 0 ]]])
Paramètres
· json_string : à décoder Chaîne JSON, doit être des données codées 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 spécifie la profondeur de récursion
· options : masque binaire, actuellement seul JSON_BIGINT_AS_STRING est pris en charge.
json_decode() erreur courante
Les trois façons suivantes d'écrire json sont toutes fausses. Pouvez-vous voir où se trouve l'erreur ?
$bad_json = "{ 'bar' : 'baz' }";
$bad_json = '{ bar : "baz" }';$bad_json = '{ "bar": "baz", }';
L'exécution de json_decode() sur ces trois chaînes renverra null et signalera une erreur.
La première erreur est que le délimiteur json autorise uniquement l'utilisation de guillemets doubles, pas de guillemets simples.
La deuxième erreur est que le "nom" (la partie à gauche des deux points) de la paire nom-valeur json doit dans tous les cas utiliser des guillemets doubles.
La troisième erreur est que vous ne pouvez pas ajouter une virgule après la dernière valeur.
De plus, json ne peut être utilisé que pour représenter des objets et des tableaux. Si json_decode() est utilisé sur une chaîne ou une valeur, null sera renvoyé.
Exemple
L'exemple suivant démontre Comment décoder les données JSON :
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>
Résultat de l'exécution du programme :
object(stdClass)#1 (5) { ["a"] = > int(1) ["b"]=> int(2) ["c"]=> ; int(5)}tableau(5) { ["a"]=> int(1) ["b"]=> " ]=> int(4) ["e"]=> int(5)}