Chapitre 31 : JSON et XML

Apprenez à manipuler les formats de données JSON et XML avec PHP

1. Introduction

Les formats JSON (JavaScript Object Notation) et XML (eXtensible Markup Language) sont largement utilisés pour l'échange de données entre applications, notamment en API. PHP offre des fonctions intégrées pour les lire, les générer et les manipuler.

2. Manipulation de JSON

Encodage

$data = ["nom" => "Alice", "age" => 25];
$json = json_encode($data);
echo $json; // {"nom":"Alice","age":25}

Décodage

$json = '{"nom":"Alice","age":25}';
$data = json_decode($json, true);
echo $data['nom']; // Alice

Options utiles

  • JSON_PRETTY_PRINT : pour un affichage lisible
  • JSON_UNESCAPED_UNICODE : pour conserver les caractères spéciaux

3. Manipulation de XML

Lire un fichier XML

$xml = simplexml_load_file("data.xml");
echo $xml->utilisateur->nom; // Affiche le nom

Créer un XML

$xml = new SimpleXMLElement("<utilisateur></utilisateur>");
$xml->addChild("nom", "Alice");
$xml->addChild("age", "25");
echo $xml->asXML();

4. Comparaison JSON vs XML

CritèreJSONXML
Lisibilité humaineTrès bonneMoyenne
PoidsLégerPlus lourd
Support des attributsNonOui
Parsing avec PHPFacileMoyen

5. Exercice pratique : Convertisseur JSON ↔ XML

🎯 Objectif : Créer deux scripts PHP :

  • Le premier lit un fichier data.json et crée un fichier data.xml équivalent
  • Le second lit un fichier data.xml et produit data.json

Conseils :

  • Utilisez json_decode() et json_encode()
  • Utilisez SimpleXMLElement pour le XML
  • Pensez à la conversion récursive des tableaux <-> objets XML
Conseil : Cet exercice vous aidera à manipuler et transformer dynamiquement les formats de données.

6. Résumé

  • ✅ JSON : format léger, facile à manipuler en PHP avec json_encode() / json_decode()
  • ✅ XML : plus structuré, supporte des attributs, manipulable via SimpleXMLElement
  • ✅ Savoir convertir et lire les deux formats est essentiel pour travailler avec des APIs

Grâce à ce chapitre, vous savez comment échanger des données au format JSON et XML en PHP.