Comment afficher joliment du JSON en JavaScript : guide complet

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 : Pourquoi le JSON ressemble-t-il à du charabia, et comment y remédier ?

\n\n

Avez-vous déjà ouvert la console du navigateur, vu une ligne interminable sans le moindre espace et pensé : « Où est l'erreur ? » ? C'est un classique. Le JSON est un langage universel d'échange de données, mais à l'état brut, il se lit à peu près comme un mode d'emploi de micro-ondes en japonais. Surtout quand il y a beaucoup de données : objets imbriqués, tableaux, longues chaînes.

\n\n

Heureusement, JavaScript dispose d'outils intégrés qui transforment ce « charabia » en une beauté soignée et structurée. Ce processus s'appelle le pretty-print JSON (ou « affichage joli »). Dans cet article, nous allons passer en revue toutes les méthodes : du JSON.stringify de base aux solutions personnalisées avancées. Vous apprendrez non seulement à lire le JSON, mais aussi à le faire confortablement.

\n\n

Cet article est rédigé pour pythonlib.ru — une ressource éducative où nous aimons les explications claires et les exemples concrets. C'est parti !

\n\n

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

\n\n

Le pretty-print (ou prettify) est le processus de formatage de données structurées (JSON, XML, YAML) avec des indentations, des sauts de ligne et un alignement. Visuellement, cela ressemble à du code bien présenté, et non à une longue chaîne unique.

\n\n

Pourquoi en a-t-on besoin ?

\n
    \n
  • Débogage (debugging). Vous voyez la structure de l'objet : où sont les clés, les objets imbriqués, les tableaux.
  • \n
  • Lecture des logs. Dans la console du navigateur ou les logs serveur, le JSON formaté sauvegarde les yeux.
  • \n
  • Documentation. Les exemples JSON dans la documentation sont toujours en pretty-print.
  • \n
  • Apprentissage. Les débutants comprennent plus facilement la structure des données lorsqu'elle est décomposée en niveaux.
  • \n
\n\n

En JavaScript, il existe deux principales façons d'obtenir un joli JSON : le JSON.stringify intégré et les bibliothèques tierces (par exemple, pretty-js). Mais commençons par les bases.

\n\n

Méthode 1 : JSON.stringify() avec paramètres (la plus populaire)

\n\n

Vous connaissez sûrement la méthode JSON.stringify(). Elle transforme un objet en chaîne JSON. Mais elle possède un deuxième et un troisième paramètres qui font des merveilles.

\n\n

Syntaxe

\n
JSON.stringify(value, replacer, space)
\n\n
    \n
  • value — votre objet ou tableau.
  • \n
  • replacer — une fonction ou un tableau pour filtrer les clés (souvent null).
  • \n
  • space — le nombre d'espaces pour l'indentation (ou une chaîne, par exemple "\\t" pour une tabulation).
  • \n
\n\n

Exemple 1 : Pretty-print de base avec espaces

\n
const user = {\n  name: "Alexeï",\n  age: 30,\n  skills: ["JavaScript", "Python", "SQL"],\n  address: {\n    city: "Moscou",\n    zip: 101000\n  }\n};\n\n// Sans formatage — une seule ligne\nconsole.log(JSON.stringify(user));\n// {"name":"Alexeï","age":30,"skills":["JavaScript","Python","SQL"],"address":{"city":"Moscou","zip":101000}}\n\n// Avec formatage — magnifique !\nconsole.log(JSON.stringify(user, null, 2));\n
\n\n

Résultat dans la console :

\n
{\n  "name": "Alexeï",\n  "age": 30,\n  "skills": [\n    "JavaScript",\n    "Python",\n    "SQL"\n  ],\n  "address": {\n    "city": "Moscou",\n    "zip": 101000\n  }\n}\n
\n\n

Remarquez : des indentations de 2 espaces ont rendu la structure lisible. Vous pouvez utiliser 4 espaces ou une tabulation ("\\t").

\n\n

Exemple 2 : Utilisation de replacer pour filtrer

\n

Parfois, vous devez afficher seulement une partie des données. Le deuxième paramètre replacer peut être un tableau de clés.

\n
const filtered = JSON.stringify(user, ["name", "skills"], 2);\nconsole.log(filtered);\n// {\n//   "name": "Alexeï",\n//   "skills": [\n//     "JavaScript",\n//     "Python",\n//     "SQL"\n//   ]\n// }\n
\n\n

Ou une fonction :

\n
const replacerFunc = (key, value) => {\n  if (key === "age") return undefined; // exclut                

Blogs

Book Recommendations