Traitement JSON en PHP : fonctions, exemples et bonnes pratiques

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Traitement JSON en PHP : guide complet



JSON (JavaScript Object Notation) est un format léger d'échange de données devenu le standard de facto pour les interactions entre le serveur et le client. En PHP, le travail avec JSON est implémenté nativement via l'extension json, disponible depuis PHP 5.2.0. Dans cet article, nous allons détailler les fonctions principales, la gestion des erreurs, le travail avec des structures imbriquées et les bonnes pratiques.



Fonctions principales pour travailler avec JSON



PHP fournit deux fonctions clés :



  • json_encode() — convertit une valeur PHP (tableau, objet, chaîne, etc.) en chaîne JSON.
  • json_decode() — convertit une chaîne JSON en variable PHP (tableau ou objet).


Exemple : encodage d'un tableau en JSON



<?php$data = [    'name' => 'Alice',    'age' => 30,    'is_student' => false,    'skills' => ['PHP', 'JavaScript', 'Python']];

$json = json_encode($data, JSON_PRETTY_PRINT);echo $json;?>


Résultat :



{    "name": "Alice",    "age": 30,    "is_student": false,    "skills": [        "PHP",        "JavaScript",        "Python"    ]}


Exemple : décodage JSON en tableau



<?php$jsonString = '{"name":"Bob","age":25,"is_active":true}';

// Deuxième paramètre true — retourne un tableau associatif$array = json_decode($jsonString, true);print_r($array);?>


Résultat :



Array(    [name] => Bob    [age] => 25    [is_active] => 1)


Drapeaux pour un réglage fin



Les fonctions json_encode() et json_decode() acceptent un deuxième paramètre — un masque de bits de drapeaux. Voici les plus utiles :



  • JSON_PRETTY_PRINT — formate la sortie avec des indentations (pour la lisibilité).
  • JSON_UNESCAPED_UNICODE — n'échappe pas les caractères Unicode (utile pour le cyrillique).
  • JSON_FORCE_OBJECT — convertit de force un tableau associatif en objet.
  • JSON_NUMERIC_CHECK — convertit les chaînes contenant des nombres en type numérique.


Exemple avec cyrillique et formatage



<?php$data = [    'name' => 'Алексей',    'city' => 'Москва'];

echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);?>


Résultat :



{    "name": "Алексей",    "city": "Москва"}


Gestion des erreurs lors du travail avec JSON



Si la chaîne d'entrée n'est pas un JSON valide, json_decode() retourne null. Pour connaître la cause exacte de l'erreur, utilisez les fonctions json_last_error() et json_last_error_msg().



<?php$invalidJson = '{name: "Alice"}'; // JSON invalide (clés sans guillemets)

$result = json_decode($invalidJson);if (json_last_error() !== JSON_ERROR_NONE) { echo 'Erreur : ' . json_last_error_msg();} else { print_r($result);}?>


Sortie :



Erreur : Syntax error


Liste complète des constantes d'erreur :



  • JSON_ERROR_NONE — aucune erreur.
  • JSON_ERROR_DEPTH — profondeur maximale de la pile dépassée.
  • JSON_ERROR_STATE_MISMATCH — JSON incorrect (non-concordance des parenthèses).
  • JSON_ERROR_SYNTAX — erreur de syntaxe.
  • JSON_ERROR_UTF8 — encodage UTF-8 incorrect.


Travail avec des structures imbriquées



Le JSON contient souvent des objets et des tableaux imbriqués. PHP permet de traiter facilement ces données à l'aide de récursions ou de boucles.



<?php$complexJson = '{    "users": [        {"name": "Alice                    

Recommendations