Le mot lui-même : ce que "plat" signifie pour les données
Oubliez JSON un instant et imaginez le mot. Une surface plate n'a ni bosses, ni couches, ni profondeur cachée : tout est au même niveau, visible d'un seul coup d'œil. Les spécialistes des données ont emprunté cette image. Des données plates sont des données sans imbrication : chaque valeur est au niveau supérieur, une valeur par emplacement, rien n'est rangé à l'intérieur d'autre chose.
Une ligne de tableur est l'exemple le plus pur de données plates. Une ligne, un ensemble de colonnes, une valeur par cellule. La valeur de la cellule C4 ne contient pas un autre tableur. Elle contient du texte, ou un nombre, ou rien. Voilà ce qui est plat.
JSON, au contraire, n'est presque jamais plat. Il s'imbrique : des objets contiennent des objets, des tableaux contiennent des objets, des objets contiennent des tableaux. Une fiche client peut porter un objet adresse, qui porte des coordonnées, qui portent une paire de nombres. Cette imbrication est toute la raison d'être de JSON, et c'est aussi la raison pour laquelle le mot "aplatissement" existe. On ne verse pas un arbre dans un tableau sans faire quelque chose aux branches. L'aplatissement est le nom de ce quelque chose.
Alors quand quelqu'un dit "aplatis le JSON", il veut dire : réécris cette structure imbriquée pour que chaque valeur vive au niveau supérieur, avec des noms qui enregistrent d'où elle vient. La valeur elle-même ne change pas. Son adresse change, d'un chemin à travers des objets imbriqués à un seul nom plat.
Pourquoi ce mot existe : JSON s'imbrique, CSV ne s'imbrique pas
Voici la tension en une seule image. JSON est un arbre : des branches, des sous-branches, des feuilles. CSV est un tableau : des lignes et des colonnes, et rien de plus profond. Une cellule CSV ne peut pas contenir un objet. Elle ne peut contenir que du texte. Toute conversion de JSON vers CSV doit donc répondre à la même question : que fait-on de l'imbrication ?
Il n'y a que quelques réponses possibles, et "l'aplatissement" est la plus courante. Prenez cet enregistrement réel, du genre qu'une API pourrait renvoyer :
{
"id": "A-101",
"customer": { "name": "Amelia", "city": "Austin" },
"tags": ["new", "vip"]
}L'objet customer est un niveau plus bas. La liste tags est un niveau plus bas. Un CSV n'a pas de "niveau plus bas", donc la version aplatie ramène tout à la surface. Sortie vérifiée du convertisseur de cette page :
Ce que fait vraiment l'aplatissement, étape par étape
L'aplatissement n'est pas une seule astuce, ce sont quatre petites règles appliquées partout. Passez l'enregistrement ci-dessus dans le convertisseur de cette page avec l'aplatissement activé, et voici exactement ce qui sort, vérifié sur la machine de compilation :
{
"id": "A-101",
"customer.name": "Amelia",
"customer.city": "Austin",
"tags": "new; vip"
}Règle une : les objets imbriqués deviennent des colonnes en notation pointée. Le chemin vers la valeur devient le nom : customer.name, customer.city. Les points ne sont que des fils d'Ariane. Le nom d'Amelia n'a pas changé, seule son étiquette d'adresse a changé.
Règle deux : les courtes listes de valeurs simples se joignent en une seule cellule. "new" et "vip" sont devenus le seul texte "new; vip". Les deux valeurs sont toujours là, mais elles forment désormais une chaîne avec un séparateur, et le fait qu'il y en avait deux n'est plus lisible par une machine.
Règle trois : les listes d'objets ne peuvent pas se joindre de façon sensée, donc elles s'effondrent en texte JSON à l'intérieur d'une seule cellule. Une liste d'articles comme [{"sku":"B1","qty":2}] devient une longue cellule entre guillemets. Les données survivent, mais en tant que texte qu'il faudrait réanalyser, pas en tant que structure.
Règle quatre : null et les valeurs vides deviennent des cellules vides. Il n'y a aucun moyen d'écrire "explicitement rien" dans un tableau plat, donc null disparaît simplement dans un blanc. Gardez celle-ci en tête : après aplatissement, vous ne pouvez plus distinguer "était null" de "était une liste vide" ou "était absent".
Comparez avec l'aplatissement désactivé sur les mêmes données, et la différence est tout le sens du mot. Avec l'interrupteur désactivé, l'objet customer reste comme une cellule de texte JSON : {"name":"Amelia","city":"Austin"}. Les données ne sont pas perdues, mais elles ne sont pas plates non plus : il reste de l'imbrication à l'intérieur de la cellule, et un tableur vous montrera une masse illisible. Plat signifie plat jusqu'au bout, une valeur par cellule, sans exception.
La confusion à dissiper : aplatir n'est pas minifier
Demandez à cinq débutants ce que "aplatir du JSON" signifie et l'un d'eux fera ceci : supprimer tous les retours à la ligne et les espaces, pour produire une seule ligne géante. C'est minifier, pas aplatir, et la distinction compte parce que les mots semblent liés mais décrivent des choses totalement différentes.
Minifier change les espaces. Aplatir change la structure. Un fichier JSON minifié est toujours imbriqué, il est juste imbriqué sur une seule ligne. Vérifié sur la machine de compilation : analyser les versions minifiée et joliment indentée du même enregistrement produit des structures identiques octet pour octet, et l'objet customer reste un objet dans les deux cas. L'arbre n'a pas bougé. Seule la peinture a changé.
# minified: no whitespace, STILL nested -> customer is an object
{"id":"A-101","customer":{"name":"Amelia","city":"Austin"},"tags":["new","vip"]}
# flattened: depth 1, nothing nested at any width
{"id":"A-101","customer.name":"Amelia","customer.city":"Austin","tags":"new; vip"}Pourquoi cette confusion arrive-t-elle ? Parce que dans le langage courant, "plat" veut parfois dire "sur une ligne", comme dans "aplatis ça sur une ligne". En travail de données, "plat" signifie "sans imbrication". Si un tutoriel vous dit d'aplatir le JSON avant de l'importer dans un tableur, il parle du genre structurel : des colonnes en notation pointée, des listes jointes, une valeur par cellule. Supprimer les espaces n'aidera votre importation d'aucune façon.
La même idée porte des noms différents
Une fois que vous savez ce qu'aplatir signifie, vous commencez à le voir partout, sous des vêtements différents. Dans la bibliothèque pandas de Python, la fonction s'appelle json_normalize, et "normalize" fait exactement le travail d'aplatissement : les objets imbriqués deviennent des colonnes en notation pointée. Vérifié dans nos tests précédents : elle aplatit customer.address en customer.city exactement comme le fait le convertisseur de cette page.
Dans Power Query d'Excel, le bouton dit "Développer" : vous cliquez la petite double flèche sur une colonne d'enregistrements imbriqués et il les développe en nouvelles colonnes. Même idée, verbe plus convivial. En SQL, UNNEST transforme un tableau imbriqué en lignes. Même famille.
Un avertissement honnête : dans jq, l'outil JSON en ligne de commande, "flatten" signifie quelque chose de plus étroit. Le flatten de jq effondre des tableaux imbriqués en un seul tableau, il ne transforme pas des objets en chemins en notation pointée. Si un tutoriel jq dit "flatten", vérifiez quel sens il emploie avant de supposer. Le monde des données réutilise ses mots sans rigueur, et c'est le seul endroit où le terme se divise vraiment.
L'aplatissement a aussi deux proches cousins à nommer, parce que les gens mélangent les trois. Aplatir garde une ligne par enregistrement et élargit les colonnes. Éclater garde les colonnes et multiplie les lignes : une ligne par élément de liste. Joindre plie une liste dans une seule cellule, ce que fait la règle deux ci-dessus aux courtes listes. Le guide « How to Flatten the JSON Data : éclater, joindre ou laisser imbriqué (Guide 2026) » détaille la décision éclater ou joindre avec des exemples réels, et « Comment aplatir JSON en CSV : ce que fait vraiment l’interrupteur (Guide 2026) » montre ce que l'interrupteur d'aplatissement du convertisseur fait cellule par cellule.
Ce que l'aplatissement vous coûte
L'aplatissement est un travail honnête, mais c'est un travail avec pertes, et les pertes méritent d'être nommées avant de cliquer. D'abord, la forme disparaît pour de bon. Après aplatissement, rien n'enregistre plus que city et state étaient frères et sœurs dans un même objet adresse. Ce ne sont que deux colonnes qui partagent un préfixe par hasard.
Ensuite, la notation pointée a une ambiguïté dont personne ne vous prévient. Si votre JSON contient littéralement une clé appelée "a.b" au niveau supérieur ET un objet a imbriqué avec la clé b, les deux s'aplatissent en le même nom de colonne, et une valeur écrase l'autre en silence. Rare en pratique, brutal quand ça frappe.
Troisièmement, les listes jointes perdent leur compteur en tant que donnée. "new; vip" ressemble à une chaîne unique. Un programme qui lit le CSV ne peut pas savoir qu'il s'agissait de deux étiquettes sans découper sur le séparateur, et si une étiquette contient elle-même un point-virgule, même ça casse.
Quatrièmement, les types s'effondrent. 101 devient les caractères "101". true devient les caractères "true". Le programme qui ouvre le CSV décide de ce qu'ils signifient, et Excel en particulier adore réinterpréter vos données : les zéros de tête disparaissent, les longs identifiants deviennent de la notation scientifique. Les valeurs ont survécu à l'aplatissement ; elles ne survivront peut-être pas au tableur.
Rien de tout cela ne signifie qu'aplatir est une erreur. Cela signifie qu'aplatir est un aller simple, et que vous devriez garder le JSON d'origine comme source de vérité. Aplatissez une copie, travaillez sur la copie, et ne jetez jamais l'arbre dont vous l'avez aplatie.
Faut-il aplatir ? Une décision en 60 secondes
Votre destination décide, pas vos données. Si la destination est un tableur, un import CSV, ou un humain qui parcourt des lignes, aplatissez : c'est ce que ces outils sont construits pour consommer, et un fichier aplati s'ouvre proprement partout.
Si la destination est un autre programme, une API, ou un aller-retour vers du JSON plus tard, n'aplatissez pas. Gardez l'imbrication, parce que chaque perte d'aplatissement listée ci-dessus devient un bug à démêler sur le chemin du retour.
Si vous hésitez, aplatissez une copie et regardez-la. Ouvrez le CSV, vérifiez que les colonnes en notation pointée ont du sens, que les listes jointes ont l'air correctes, que rien d'important n'est devenu une masse illisible. Soixante secondes de regard valent mieux qu'une heure de débogage d'un mauvais import.
- Tableur, import CSV, relecture humaine : aplatissez, c'est ce que ces outils attendent.
- API, base de données, aller-retour vers du JSON : gardez l'imbrication, les pertes d'aplatissement deviennent des bugs.
- Hésitation : aplatissez une copie, ouvrez-la, et vérifiez les colonnes avant de valider.
Essayez sur cette page
Le convertisseur en haut de cette page aplatit par défaut. Collez n'importe quel JSON imbriqué et regardez l'aperçu : les objets imbriqués deviennent des colonnes en notation pointée, les listes se joignent avec "; ", et chaque cellule contient exactement une valeur. Désactivez l'aplatissement et collez le même JSON pour voir la différence que fait le mot : des masses imbriquées dans les cellules contre un tableau plat et propre. Ce côte à côte, sur vos propres données, est le moyen le plus rapide de faire entrer le terme.
Si votre JSON contient des listes d'objets que vous voulez vraiment en lignes, l'aplatissement seul ne suffira pas : c'est éclater, une opération différente, et le guide « How to Flatten the JSON Data : éclater, joindre ou laisser imbriqué (Guide 2026) » explique exactement quand éclater au lieu d'aplatir.
Guides associés
- Comment aplatir JSON en CSV : ce que fait vraiment l’interrupteur (Guide 2026)
- How to Flatten the JSON Data : éclater, joindre ou laisser imbriqué (Guide 2026)
- Qu'est-ce qu'un fichier JSON et CSV ? Guide débutant des deux formats (Guide 2026)
- what is JSON to CSV online : la signification des trois mots, expliquée (guide 2026)
- what is JSON to CSV converter online : anatomie d'un convertisseur JSON en CSV en ligne (guide 2026)
- convert json to csv locally : convertir JSON en CSV sur votre propre machine, sans rien envoyer (Guide 2026)
- Quelles sont les façons de convertir JSON en CSV localement ? 6 méthodes comparées (Guide 2026)
- Votre CSV s'ouvre dans une seule colonne dans Excel : pourquoi et comment le corriger (Guide 2026)
- Pourquoi votre CSV affiche des caractères spéciaux illisibles dans Excel, et comment corriger l'encodage (Guide 2026)
- Pourquoi Excel supprime les zéros non significatifs de vos codes CSV, et comment les conserver (Guide 2026)
- Pourquoi Excel change les dates de votre CSV, et comment les conserver (Guide 2026)
- Pourquoi l'enregistrement de votre CSV dans Excel le modifie, et comment protéger l'original (Guide 2026)
- Fichier CSV trop volumineux pour Excel : pourquoi Excel ne l'ouvre pas et que faire à la place (Guide 2026)
Questions fréquentes
Que signifie aplatir du JSON, en termes simples ?
Cela signifie réécrire du JSON imbriqué pour que plus rien ne soit imbriqué. Les objets à l'intérieur d'objets deviennent des noms en notation pointée comme customer.city, les courtes listes deviennent une seule cellule jointe, et chaque valeur se retrouve au niveau supérieur, une par cellule. Le résultat est un tableau plat, ce dont les fichiers CSV et les tableurs ont besoin.
Aplatir du JSON, est-ce la même chose que le minifier ?
Non, et c'est la confusion la plus fréquente. Minifier supprime les espaces, produisant une longue ligne qui reste entièrement imbriquée. Aplatir change la structure elle-même, en remontant les valeurs imbriquées au niveau supérieur. Un fichier minifié s'analyse en exactement le même arbre ; un fichier aplati est une forme différente et moins profonde.
Aplatir un fichier JSON modifie-t-il mes données ?
Cela modifie la forme, pas les valeurs. Chaque valeur feuille survit, mais l'imbrication devient des colonnes en notation pointée, les listes deviennent du texte joint, les types s'effondrent en texte, et null devient une cellule vide. Gardez le JSON d'origine comme source de vérité et traitez le fichier aplati comme une copie de travail.
Quelle est la différence entre aplatir et éclater du JSON ?
Aplatir garde une ligne par enregistrement et élargit les colonnes : les chemins imbriqués deviennent de nouvelles colonnes. Éclater garde les colonnes et multiplie les lignes : chaque élément d'une liste obtient sa propre ligne, avec le reste de l'enregistrement répété. Aplatissez un client avec trois étiquettes et vous obtenez une ligne avec une cellule "tag1; tag2; tag3" ; éclatez-le et vous obtenez trois lignes. Le guide « How to Flatten the JSON Data : éclater, joindre ou laisser imbriqué (Guide 2026) » explique quand choisir l'un ou l'autre.
Pourquoi les fichiers CSV ont-ils besoin de données plates ?
Parce qu'un CSV n'a que des lignes, des colonnes et du texte. Il n'y a nulle part où ranger l'imbrication : une cellule ne peut pas contenir un objet, seulement des caractères. Les structures imbriquées doivent donc être aplanies (ou emballées en texte JSON dans une cellule) avant de pouvoir vivre dans un CSV.
Puis-je désaplatir un CSV pour retrouver du JSON imbriqué ?
Seulement approximativement. Des colonnes en notation pointée comme customer.city peuvent être regroupées en objets imbriqués par un script, et certains outils le font, mais l'information détruite par l'aplatissement est perdue : les listes jointes ne peuvent pas se redécouper de façon fiable en tableaux, les types sont des suppositions, et null contre absent est inconnaissable. Si vous avez besoin de retrouver l'imbrication, gardez le JSON d'origine.
Le convertisseur JSON vers CSV de cette page aplatit-il automatiquement ?
Oui, l'aplatissement est activé par défaut : collez du JSON imbriqué et l'aperçu montre immédiatement des colonnes en notation pointée. Vous pouvez le désactiver, auquel cas les objets et tableaux imbriqués restent en texte JSON à l'intérieur de cellules uniques. Pour du travail de tableur, laissez-le activé.
Regardez l’aplatissement se produire en direct
Collez du JSON imbriqué dans le convertisseur et voyez l’aplatissement le transformer en colonnes en notation pointée. Gratuit, sans inscription, fonctionne entièrement dans votre navigateur.
Ouvrir le convertisseur JSON en CSV