Dans ce tutoriel, nous allons voir comment coder et décoder des données JSON en PHP.
Dans cette page, vous apprendrez à utiliser les fonctions PHP json_decode() et json_encode() avec des exemples.
A partir de PHP 5.2.0 lorsque vous installez PHP, le support JSON est automatiquement installé et vous n'avez pas besoin d'installation et de configuration supplémentaire.
Les structures de données JSON sont très similaires aux tableaux de PHP. PHP possède des fonctions intégrées pour encoder et décoder les données JSON. Ces fonctions sont json_encode() et json_decode(), respectivement. Ces deux fonctions ne fonctionnent qu'avec des chaînes de caractères encodées en UTF-8.
JSON supporte trois fonctions PHP : json_decode, json_encode et json_last_error. Nous allons aborder toutes ces fonctions avec des exemples dans ce qui suit dans cette page.
La fonction PHP json_encode() convertit une valeur PHP en une valeur JSON. Par exemple, à partir d'un tableau PHP, on peut créer une représentation JSON de ce tableau.
En PHP, la fonction json_encode() est utilisée pour encoder une valeur au format JSON. La valeur encodée peut être n'importe quel type de données PHP, sauf une ressource, comme une base de données ou un handle de fichier.
Syntaxe :
json_encode(valeur, options)
Paramètres | Type | Description |
---|---|---|
valeur | Mixed | Tout type de PHP, à l'exception des ressources. Les données doivent être codées en caractères UTF. |
options | Integer | Masque comprenant JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT. |
L'exemple ci-dessous montre comment encoder un tableau PHP en un objet ou en un tableau JSON
Code
<!DOCTYPE html> <html> <head lang="fr"> <meta charset="utf-8"> <title>PHP la fonction json_encode()</title> <?php $varPhp_one = array('php',"'MySQL'",'"SQL"','<?PHP ?>'); $varPhp_two = array(); $varPhp_three = array(array(1,2,3)); $varPhp_four = array('PHP' => 'examples', 'MySQL' => 'With PHP'); echo "Normal: ", json_encode($varPhp_one), "<br><hr>"; echo "Balise: ", json_encode($varPhp_one, JSON_HEX_TAG), "<br><hr>"; echo "Apostrophe: ", json_encode($varPhp_one, JSON_HEX_APOS), "<br><hr>"; echo "Quot: ", json_encode($varPhp_one, JSON_HEX_QUOT), "<br><hr>"; echo "Amp: ", json_encode($varPhp_one, JSON_HEX_AMP), "<br><hr>"; echo "Tout: ", json_encode($varPhp_one, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP), "<br><hr>"; echo "Sortie d'un tableau vide en tant que tableau: ", json_encode($varPhp_two), "<br><hr>"; echo "Sortie d'un tableau vide en tant qu'objet: ", json_encode($varPhp_two, JSON_FORCE_OBJECT), "<br><hr>"; echo "sortie du tableau non associatif ci-dessus sous forme de tableau: ", json_encode($varPhp_three), "<br><hr>"; echo "sortie du tableau non-associatif ci-dessus comme objet: ", json_encode($varPhp_three, JSON_FORCE_OBJECT), "<br><hr>"; echo "sortie du tableau associatif comme un objet : ", json_encode($varPhp_four), "<br><hr>"; echo "sortie du tableau associatif comme un objet: ", json_encode($varPhp_four, JSON_FORCE_OBJECT), "<br><hr>"; ?> </body> </html>
La fonction json_decode() décode une chaîne JSON. Supposons que vous ayez obtenu des données au format JSON et que vous souhaitiez les convertir en variables PHP dans le but de les présenter à un utilisateur ou de les utiliser dans le cadre d'un programme, vous devez utiliser cette fonction.
Décoder des données JSON est aussi simple que de les encoder. Vous pouvez utiliser la fonction PHP json_decode() pour convertir la chaîne codée JSON en un type de données PHP approprié.
Syntaxe :
json_decode(json_string, assoc, depth, options)
Paramètres :
Paramètres | Type | Description |
---|---|---|
json_string | Chaîne | Une chaîne codée JSON. Il doit s'agir d'une donnée encodée en UTF-8. |
assoc | Booléen | Si c'est vrai, l'objet retourné sera converti en un tableau associatif lors de l'utilisation de la fonction json_decode. |
depth | Entier | Spécifie la profondeur de récursion. Elle est spécifiée par l'utilisateur. |
Options | Integer | Masque de bits du décodage JSON. A ce jour, seul JSON_BIGINT_AS_STRING est supporté. |
La fonction json_decode() retourne un type PHP supporté. Si la chaîne JSON disponible ne peut pas être décodée ou si les données encodées sont plus profondes que la limite de récursion, elle retourne NULL.
Code
<!DOCTYPE html> <html> <head lang="fr"> <meta charset="utf-8"> <title> PHP JSON la fonction json_decode() Tutoriel JSON</title> </head> <body> <?php // Variable contenant un objet JSON $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; /*Decodage de $json pour la transformer en objet php et affichage de l'objet*/ var_dump(json_decode($json)); ?> </body> </html>
La sortie de l'exemple ci-dessus est un objet car la fonction json_decode() renvoie par défaut un objet. Mais vous pouvez éventuellement spécifier le second paramètre assoc qui accepte une valeur booléenne lequelle, lorsqu'il est définie comme vraie(true), décode les objets JSON en tableaux associatifs. Cette valeur est par défaut définie comme fausse(false). Voici le même exemple avec le second paramètre assoc sur true:
Code
<!DOCTYPE html> <html> <head lang="fr"> <meta charset="utf-8"> <title> PHP JSON la fonction json_decode() Tutoriel JSON</title> </head> <body> <?php // Variable contenant un objet JSON $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; /*Decodage de $json pour la transformer en tableau php et affichage du tableau*/ var_dump(json_decode($json, true)); ?> </body> </html>
Et voila mais si vous voulez voir un exemple concret et pratique voir notre tutoriel : Géolocalisation en temps réel et Recherche d'adresses IP
Livre numérique court pour comprendre la méthode secrète permettant d'obtenir des likes sans fin sur Facebook.
GAGNER DE L'ARGENT