JSON en JavaScript : guide complet pour l'analyse et la sérialisation

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

Travailler avec JSON en JavaScript : analyse et sérialisation en pratique

\n\n

JSON (JavaScript Object Notation) est un format léger d'échange de données largement utilisé dans les applications web modernes. En JavaScript, la gestion du JSON est intégrée au niveau du langage, ce qui en fait un outil idéal pour l'échange de données entre le client et le serveur, ainsi que pour le stockage de configurations. Dans cet article, nous allons voir comment analyser et sérialiser du JSON dans l'environnement Node.js, avec des exemples pratiques et les meilleures pratiques.

\n\n

Qu'est-ce que JSON et pourquoi en a-t-on besoin ?

\n

JSON est un format textuel basé sur la syntaxe des objets JavaScript. Il prend en charge les types de données suivants :

\n
    \n
  • Chaînes de caractères (entre guillemets doubles)
  • \n
  • Nombres (entiers et à virgule flottante)
  • \n
  • Valeurs booléennes (true/false)
  • \n
  • Tableaux
  • \n
  • Objets
  • \n
  • null
  • \n
\n

JSON est utilisé partout : des requêtes API aux fichiers de configuration (par exemple, package.json). Dans Node.js, JSON est le format principal pour l'échange de données entre microservices.

\n\n

Analyse JSON : transformer une chaîne en objet

\n

Pour convertir une chaîne JSON en objet JavaScript, on utilise la méthode JSON.parse(). Voici un exemple de base :

\n\n
const jsonString = '{"name": "Анна", "age": 30, "isStudent": false}';\nconst user = JSON.parse(jsonString);\n\nconsole.log(user.name);      // "Анна"\nconsole.log(user.age);       // 30\nconsole.log(user.isStudent); // false
\n\n

Important : La chaîne JSON doit être strictement formatée. Toutes les clés et valeurs de chaînes doivent être entre guillemets doubles. Les guillemets simples ou les virgules finales provoqueront une erreur.

\n\n

Gestion des erreurs lors de l'analyse

\n

Lorsqu'on travaille avec des données externes (fichiers, API), il y a toujours un risque d'obtenir un JSON incorrect. Utilisez try...catch :

\n\n
const fs = require('fs');\n\ntry {\n  const data = fs.readFileSync('data.json', 'utf8');\n  const parsed = JSON.parse(data);\n  console.log('Analyse réussie :', parsed);\n} catch (error) {\n  if (error instanceof SyntaxError) {\n    console.error('Erreur de syntaxe JSON :', error.message);\n  } else {\n    console.error('Erreur de lecture du fichier :', error.message);\n  }\n}
\n\n

Analyse avec une fonction de révision

\n

La méthode JSON.parse() accepte un deuxième argument — une fonction qui peut transformer les valeurs. Cela est utile, par exemple, pour convertir des dates sous forme de chaîne en objets Date :

\n\n
const json = '{"name": "Иван", "birthDate": "1990-05-15T00:00:00Z"}';\nconst user = JSON.parse(json, (key, value) => {\n  if (key === 'birthDate') {\n    return new Date(value);\n  }\n  return value;\n});\n\nconsole.log(user.birthDate instanceof Date); // true\nconsole.log(user.birthDate.getFullYear());   // 1990
\n\n

Sérialisation JSON : transformer un objet en chaîne

\n

Le processus inverse — la conversion d'un objet JavaScript en chaîne JSON — s'effectue avec JSON.stringify().

\n\n
const user = {\n  name: 'Мария',\n  age: 25,\n  skills: ['JavaScript', 'Node.js', 'Python'],\n  isActive: true\n};\n\nconst jsonString = JSON.stringify(user);\nconsole.log(jsonString);\n// {"name":"Мария","age":25,"skills":["JavaScript","Node.js","Python"],"isActive":true}
\n\n

Formatage de la sortie

\n

Pour améliorer la lisibilité, vous pouvez ajouter des indentations :

\n\n
const prettyJson = JSON.stringify(user, null, 2);\nconsole.log(prettyJson);\n/*\n{\n  "name": "Мария",\n  "age": 25,\n  "skills": [\n    "JavaScript",\n    "Node.js",\n    "Python"\n  ],\n  "isActive": true\n}\n*/
\n\n

Filtrage et remplacement de valeurs

\n

Le deuxième argument de JSON.stringify() peut être un tableau de clés (pour le filtrage) ou une fonction de remplacement :

\n\n


                
                

Blogs

Book Recommendations