Traitement JSON dans Node.js : guide complet
JSON (JavaScript Object Notation) est un format léger d'échange de données, basé sur la syntaxe des objets JavaScript. Dans l'environnement Node.js, le travail avec JSON est une tâche quotidienne : des fichiers de configuration aux requêtes API. Dans cet article, nous allons détailler tous les aspects du traitement JSON, y compris l'analyse, la sérialisation, la validation et le travail avec de gros fichiers.
Méthodes de base : JSON.parse() et JSON.stringify()
Les deux méthodes principales pour travailler avec JSON sont intégrées directement dans JavaScript. Elles sont disponibles globalement et ne nécessitent pas l'installation de bibliothèques supplémentaires.
JSON.parse() — conversion d'une chaîne en objet
La méthode JSON.parse() prend une chaîne JSON et retourne l'objet JavaScript correspondant. Si la chaîne contient un JSON invalide, une exception SyntaxError sera levée.
const jsonString = '{"name": "Анна", "age": 28, "isStudent": false}';const user = JSON.parse(jsonString);console.log(user.name); // "Анна"console.log(user.age); // 28Un deuxième paramètre facultatif permet de passer une fonction de révision qui permet de modifier les valeurs pendant l'analyse :
const json = '{"year": "2024", "price": "1500.50"}';const data = JSON.parse(json, (key, value) => { if (key === 'price') return parseFloat(value); if (key === 'year') return parseInt(value); return value;});console.log(typeof data.price); // "number"JSON.stringify() — conversion d'un objet en chaîne
La méthode JSON.stringify() fait l'inverse : transforme un objet ou une valeur en chaîne JSON. Elle accepte jusqu'à trois arguments : la valeur, une fonction de remplacement ou un tableau de clés, et le nombre d'espaces pour le formatage.
const user = { name: "Иван", age: 32, skills: ["JS", "Node", "Python"]};
// Sans formatageconsole.log(JSON.stringify(user));// {"name":"Иван","age":32,"skills":["JS","Node","Python"]}
// Avec formatage (2 espaces)console.log(JSON.stringify(user, null, 2));/*{ "name": "Иван", "age": 32, "skills": [ "JS", "Node", "Python" ]}*/Le deuxième argument peut être un tableau de clés pour le filtrage :
console.log(JSON.stringify(user, ['name', 'age']));// {"name":"Иван","age":32}Travail avec les fichiers JSON dans Node.js
Dans Node.js, il est souvent nécessaire de lire et d'écrire des fichiers JSON. Pour cela, on utilise les modules fs (file system).
Lecture d'un fichier JSON
const fs = require('fs');
// Lecture synchronetry { const data = fs.readFileSync('config.json', 'utf8'); const config = JSON.parse(data); console.log(config.port);} catch (err) { console.error('Erreur de lecture du fichier :', err.message);}
// Lecture asynchronefs.readFile('config.json', 'utf8', (err, data) => { if (err) { console.error('Erreur :', err); return; } const config = JSON.parse(data); console.log(config.port);});Écriture d'un fichier JSON
const fs = require('fs');
const settings = { theme: 'dark', language: 'ru', fontSize: 14};
// Écriture synchronefs.writeFileSync('settings.json', JSON.stringify(settings, null, 2));
// Écriture asynchronefs.writeFile('settings.json', JSON.stringify(settings, null, 2), (err) => { if (err) console.error('Erreur d\\'écriture :', err); else console.log('Fichier sauvegardé');});Validation JSON
Avant d'utiliser les données, il est toujours bon de vérifier leur validité. La méthode la plus simple consiste à encapsuler JSON.parse() dans un try-catch. Pour une validation plus complexe de la structure, on peut utiliser des bibliothèques.
Vérification avec try-catch
function safeJsonParse(str) { try { return { data: JSON.parse(str), error: null }; } catch (e) { return { data: null, error: e.me Aussi dans la bibliothèque
StoreKit Swift : guide complet avec exemples
Client HTTP pour JavaScript (Node.js) : top bibliothèques 2025
Traitement JSON en PHP : fonctions, exemples et meilleures pratiques
Planificateur de tâches Kotlin : aperçu et exemples d'utilisation