Introduction : qu'est-ce que JSON et pourquoi en a-t-on besoin en JavaScript ?
JSON (JavaScript Object Notation) est un format textuel léger d'échange de données, basé sur la syntaxe des objets JavaScript. Malgré son nom, JSON est indépendant du langage et est supporté par pratiquement tous les langages de programmation modernes. Dans l'écosystème Node.js et du JavaScript navigateur, travailler avec JSON est l'une des opérations les plus courantes : de la récupération de données depuis une API à la sauvegarde de configurations et au transfert d'informations entre le serveur et le client.
Dans cet article, nous allons analyser deux méthodes clés : JSON.parse() (conversion d'une chaîne JSON en objet JavaScript) et JSON.stringify() (conversion d'un objet JavaScript en chaîne JSON). Vous apprendrez à gérer correctement les erreurs, à travailler avec des structures imbriquées et à utiliser les fonctionnalités avancées de ces méthodes.
1. Analyse JSON : la méthode JSON.parse()
La méthode JSON.parse() prend une chaîne au format JSON et la convertit en un objet, un tableau ou une valeur primitive JavaScript. C'est l'opération principale lorsque vous recevez des données d'une source externe — par exemple, d'une API REST ou d'un fichier.
Syntaxe de base
const jsonString = '{"name": "Anna", "age": 30, "isStudent": false}';const user = JSON.parse(jsonString);
console.log(user.name); // "Anna"console.log(user.age); // 30console.log(user.isStudent); // falseNotez : les clés et les valeurs de chaînes en JSON doivent être entourées de guillemets doubles. Les guillemets simples ou l'absence de guillemets pour les clés entraîneront une erreur.
Analyse de tableaux
JSON peut contenir non seulement des objets, mais aussi des tableaux :
const jsonArray = '[1, 2, 3, "quatre", true]';const arr = JSON.parse(jsonArray);
console.log(arr[0]); // 1console.log(arr[3]); // "quatre"Structures imbriquées
JSON prend en charge une imbrication illimitée :
const complexJson = '{"users":[{"id":1,"name":"Ivan"},{"id":2,"name":"Maria"}]}';const data = JSON.parse(complexJson);
console.log(data.users[0].name); // "Ivan"console.log(data.users[1].id); // 2Gestion des erreurs d'analyse
Si la chaîne contient un JSON invalide, JSON.parse() lèvera une exception SyntaxError. Utilisez toujours try/catch lorsque vous travaillez avec des données externes :
const invalidJson = '{"name": "Pierre", age: 25}'; // Erreur : age sans guillemets
try { const obj = JSON.parse(invalidJson); console.log(obj);} catch (error) { console.error('Erreur d\'analyse JSON :', error.message); // Affiche : Erreur d'analyse JSON : Unexpected token 'a', ...}Utilisation avancée : la fonction reviver
Le deuxième paramètre de JSON.parse() est une fonction reviver qui permet de transformer les valeurs pendant l'analyse. Par exemple, on peut automatiquement convertir les chaînes de dates en objets Date :
const jsonWithDate = '{"name": "Événement", "date": "2025-03-15T10:00:00.000Z"}';
const event = JSON.parse(jsonWithDate, (key, value) => { if (key === 'date') { return new Date(value); } return value;});
console.log(event.date instanceof Date); // trueconsole.log(event.date.getFullYear()); // 20252. Sérialisation JSON : la méthode JSON.stringify()
La méthode JSON.stringify() effectue l'opération inverse — convertit un objet ou une valeur JavaScript en une chaîne JSON. Cela est nécessaire pour envoyer des données au serveur, les sauvegarder dans un fichier ou les journaliser.
Syntaxe de base
const user = { name: "Olga", age: 28, isAdmin: true, skills: ["JS", "Python", "SQL"]};
const jsonString = JSON.stringify(user);console.log(jsonString);// {"name":"Olga