🏠 Accueil ◀ TP PrĂ©cĂ©dent TP Suivant ▶

TP5B - Lecture JSON en local

Chargement de fichiers JSON avec fetch()

Objectif :

Apprendre à charger et afficher des données depuis un fichier JSON local en utilisant l'API fetch.

1. Chargement du fichier etudiant.json

Les données des étudiants apparaßtront ici...

2. Chargement du fichier tp11.json (commodités)

Les données des commodités apparaßtront ici...

3. Gestion des erreurs

Les messages d'erreur apparaĂźtront ici...

4. Options avancées de fetch

Informations sur le chargement...
JavaScript
// Méthode 1: fetch() avec then/catch
function chargerDonnees() {
    fetch('etudiant.json')
        .then(response => {
            // VĂ©rifier si la requĂȘte a rĂ©ussi
            if (!response.ok) {
                throw new Error(`Erreur HTTP: ${response.status}`);
            }
            return response.json(); // Convertir en JSON
        })
        .then(data => {
            // Traiter les données
            console.log('Données chargées:', data);
            afficherDonnees(data);
        })
        .catch(error => {
            // Gérer les erreurs
            console.error('Erreur:', error);
            afficherErreur(error.message);
        });
}

// Méthode 2: async/await
async function chargerDonneesAsync() {
    try {
        const response = await fetch('etudiant.json');
        
        if (!response.ok) {
            throw new Error(`Erreur: ${response.status}`);
        }
        
        const data = await response.json();
        afficherDonnees(data);
        
    } catch (error) {
        console.error('Erreur:', error);
        afficherErreur(error.message);
    }
}

// Méthode 3: fetch() avec options
function chargerAvecOptionsAvancees() {
    const controller = new AbortController();
    const signal = controller.signal;
    
    // Timeout aprĂšs 5 secondes
    const timeoutId = setTimeout(() => {
        controller.abort();
    }, 5000);
    
    fetch('etudiant.json', {
        method: 'GET',
        headers: {
            'Content-Type': 'application/json',
            'X-Requested-By': 'Kacper'
        },
        signal: signal,
        cache: 'no-cache',
        mode: 'cors'
    })
    .then(response => response.json())
    .then(data => {
        clearTimeout(timeoutId);
        afficherDonnees(data);
    })
    .catch(error => {
        clearTimeout(timeoutId);
        if (error.name === 'AbortError') {
            afficherErreur('RequĂȘte annulĂ©e (timeout)');
        } else {
            afficherErreur(error.message);
        }
    });
}

Fichier etudiant.json :

JSON
Chargement du fichier JSON...

Méthodes de chargement :

Méthode Description Avantages Utilisation
fetch() API moderne pour requĂȘtes HTTP Promises, simple Ă  utiliser fetch('fichier.json')
XMLHttpRequest Ancienne API pour requĂȘtes CompatibilitĂ© anciens navigateurs new XMLHttpRequest()
import Importation de modules ES6 Syntaxe moderne, typage import data from './fichier.json'
async/await Syntaxe asynchrone moderne Code plus lisible, gestion erreurs async function charger() {}