Travailler avec JSON en JavaScript : analyse et sérialisation des données

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

Introduction à JSON et son rôle en JavaScript



JSON (JavaScript Object Notation) est un format léger d'échange de données basé sur la syntaxe des objets JavaScript. Malgré ses origines, JSON est devenu un standard universel pour la transmission de données structurées entre le serveur et le client, ainsi que pour le stockage de configurations et l'échange d'informations dans les architectures de microservices.



Dans l'environnement Node.js, travailler avec JSON est une tâche quotidienne : de la lecture des fichiers de configuration au traitement des réponses d'API REST. Dans cet article, nous examinerons en détail deux méthodes clés — JSON.parse() et JSON.stringify(), et analyserons également les erreurs typiques et les meilleures pratiques.



1. Analyse de JSON : La méthode JSON.parse()



La méthode JSON.parse() convertit une chaîne au format JSON en un objet JavaScript. Cela est nécessaire lorsque vous recevez des données d'un serveur, d'un fichier ou d'une source externe.



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);  // 30


Utilisation avancée : La fonction de rappel (Reviver)



Le deuxième argument de JSON.parse() peut accepter une fonction de rappel (reviver), qui vous permet de modifier les valeurs lors de l'analyse. C'est utile pour convertir des chaînes de dates en objets Date ou pour la validation de données.



const jsonData = '{"date": "2024-01-15T10:30:00.000Z", "value": 42}';const parsed = JSON.parse(jsonData, (key, value) => {  if (key === 'date') {    return new Date(value);  }  return value;});console.log(parsed.date instanceof Date); // trueconsole.log(parsed.date.toLocaleDateString()); // "1/15/2024"


Gestion des erreurs d'analyse



Un JSON invalide lèvera une SyntaxError. Enveloppez toujours l'appel à JSON.parse() dans un bloc try...catch :



function safeParse(jsonString) {  try {    return { data: JSON.parse(jsonString), error: null };  } catch (error) {    console.error('Erreur d\'analyse JSON :', error.message);    return { data: null, error: error.message };  }}

const result = safeParse('{"name": "Error"}');console.log(result.data.name); // "Error"


2. Sérialisation en JSON : La méthode JSON.stringify()



La méthode JSON.stringify() effectue la tâche inverse — elle convertit un objet JavaScript en une chaîne JSON. Cela est utilisé lors de l'envoi de données à un serveur, de la sauvegarde d'état ou de la journalisation.



Syntaxe de base



const user = {  name: 'Ivan',  age: 25,  skills: ['JavaScript', 'Node.js']};

const jsonString = JSON.stringify(user);console.log(jsonString);// {"name":"Ivan","age":25,"skills":["JavaScript","Node.js"]}


Paramètres de formatage



Le troisième argument de JSON.stringify() vous permet de définir l'indentation pour une sortie lisible. Cela est particulièrement utile lors de l'écriture dans des fichiers ou du débogage.



const config = {  server: { port: 3000, host: 'localhost' },  database: { host: 'db.example.com', port: 5432 }};

// Sortie compacteconsole.log(JSON.stringify(config));

// Sortie lisible avec une indentation de 2 espacesconsole.log(JSON.stringify(config, null, 2));// {// "server": {// "port": 3000,// "host": "localhost"// },// ...// }


Filtrage des propriétés avec le Replacer



Le deuxième argument est un tableau ou une fonction qui détermine quelles propriétés inclure dans la chaîne résultante.



const user = {  id: 1,  name: 'Maria',  email: 'maria@example.com',  password: 'secret123',  role: 'admin'};

// Exclusion des données confidentiellesconst safeUser = JSON.stringify(user, ['id', 'name', 'email', 'role']);console.log(safeUser);// {"id":1,"name":"Maria","email":"maria@exa

Blogs

Book Recommendations