Exercice : Comparaison des formats de données
On utilise souvent YAML, JSON et XML pour représenter des données structurées. L'objectif de cet exercice est de comprendre les différences entre ces formats en manipulant un même ensemble de données dans les trois formats.
1. Données à représenter
Imaginons que nous avons une liste de livres avec les informations suivantes :
- Titre
- Auteur
- Année de publication
- Genres (une liste de genres)
Voici les données sous forme de tableau :
Titre | Auteur | Année | Genres |
1984 | George Orwell | 1949 | Dystopie, Politique |
Le Petit Prince | Antoine de Saint-Exupéry | 1943 | Conte, Philosophie |
2. Représentation des données en JSON, YAML et XML
1️⃣ Convertissez ces données en JSON, YAML et XML.
2️⃣ Identifiez les différences principales entre ces formats (syntaxe, lisibilité, etc.).
3. Questions de réflexion
- Quel format est le plus facile à lire pour un humain ? Pourquoi ?
- Quel format est le plus adapté pour un échange de données entre applications ?
- Comment chaque format gère-t-il les listes (ex. la liste des genres) ?
- Quel format est le plus verbeux et pourquoi ?
- YAML n'utilise pas de guillemets ni d'accolades. Quels sont les avantages et inconvénients de cette approche ?
4.Manipuler les formats JSON, YAML et XML en PHP ! Voici un script PHP qui :
✅ Charge les fichiers JSON, YAML et XML. ✅ Convertit chaque format en tableau PHP. ✅ Compare les résultats.
📌 Code PHP : Manipulation JSON, YAML et XML Créez les fichiers livres.json, livres.yaml et livres.xml, puis exécutez ce script :
<?php // Active l'affichage des erreurs (utile en développement) error_reporting(E_ALL); ini_set('display_errors', 1); // --- 1. Charger un fichier JSON --- function load_json($file) { $json = file_get_contents($file); return json_decode($json, true); } // --- 2. Charger un fichier YAML --- function load_yaml($file) { if (!function_exists('yaml_parse_file')) { die("Erreur : L'extension PHP YAML n'est pas installée !"); } return yaml_parse_file($file); } // --- 3. Charger un fichier XML --- function load_xml($file) { $xml = simplexml_load_file($file); $json = json_encode($xml); // Convertit en JSON temporairement return json_decode($json, true); // Puis en tableau PHP } // --- 4. Comparer les données --- $json_data = load_json("livres.json"); $yaml_data = load_yaml("livres.yaml"); $xml_data = load_xml("livres.xml"); // Vérification de l'égalité des données echo "JSON et YAML identiques ? " . ($json_data == $yaml_data ? "OUI" : "NON") . "\n"; echo "JSON et XML identiques ? " . ($json_data == $xml_data ? "OUI" : "NON") . "\n"; echo "YAML et XML identiques ? " . ($yaml_data == $xml_data ? "OUI" : "NON") . "\n"; // --- 5. Afficher les données --- echo " <br /> Données JSON : <br /> "; print_r($json_data); echo " <br /> Données YAML : <br /> "; print_r($yaml_data); echo " <br /> Données XML : <br /> "; print_r($xml_data); ?>
Installation YAML en PHP
Si PHP ne reconnaît pas yaml_parse_file() :
- installez l'extension YAML sur le serveur apache : sudo apt install php-yaml # Pour Linux (Ubuntu/Debian)
- Dans le fichier php.ini (commande php –ini pour connaître son emplacement), décommentez ou ajoutez : extension=yaml
- Redémarrez le serveur : sudo systemctl restart apache2
Rôle du script php
- Chargement des fichiers : identifier la commande qui permet de charger caque format de fichier
- Comparaison des données : vérifier si les formats contiennent les mêmes données.
- Affichage des résultats : afficher les tableaux PHP obtenus pour voir leur structure.