Pourquoi cette conversion n’est pas aussi simple qu’elle en a l’air
Un fichier CSV — valeurs séparées par des virgules, des points-virgules ou des tabulations — semble être le format le plus simple du monde: du texte brut, des lignes, des colonnes. Pourtant, le transformer en JSON demande une attention particulière, parce que les deux formats traitent les données de manière fondamentalement différente. Le CSV ignore les types: chaque champ est une chaîne de caractères, peu importe qu’il contienne un nombre, une date ou un code postal. Le JSON, lui, accepte des nombres, des booléens, null et même des objets imbriqués. Le piège est là: aucun nombre dans le CSV ne devient automatiquement un nombre dans le JSON produit par cet outil. Si votre colonne contient des prix (14,99), des quantités (3) ou des codes postaux (H0H 0H0), ils resteront des chaînes de caractères dans le fichier de sortie. Vous devrez les convertir manuellement après le téléchargement si votre application en a besoin sous forme numérique.
Autre différence majeure: le CSV est un tableau strictement plat. Chaque ligne correspond à un enregistrement, chaque colonne à un champ. Impossible d’y représenter une hiérarchie — des objets à l’intérieur d’objets — sans ajouter des règles complexes que cet outil n’applique pas. La conversion produit donc un tableau d’objets simples, tous avec les mêmes clés. C’est exactement ce qu’on attend d’un tableau de produits, de contacts ou de journaux d’événements, mais ce n’est pas adapté à des structures plus riches.
Ensuite, le délimiteur est crucial. L’outil vous demande de préciser si votre fichier utilise des virgules, des points-virgules ou des tabulations. Une erreur de sélection entraîne une mauvaise lecture des colonnes, surtout si les données contiennent des virgules à l’intérieur des champs. Les pages sœurs qui convertissent du JSON ou du XLSX n’ont pas cette exigence. Le choix du séparateur est donc la première source d’erreur pour un utilisateur qui n’y prête pas attention.
Enfin, les guillemets et les retours à la ligne posent problème. Le CSV utilise des guillemets pour encadrer les champs qui contiennent des virgules ou des sauts de ligne. Mais tous les logiciels ne respectent pas la norme RFC 4180. Des guillemets mal échappés, des champs non cités contenant des virgules, ou des retours à la ligne à l’intérieur d’un champ non cité sont des causes fréquentes d’échec d’analyse. L’outil affiche alors le message: « This CSV could not be parsed. » Cette fragilité est plus marquée que pour d’autres conversions, comme JSON vers CSV ou Excel vers JSON, où le format source est mieux défini.
Le délimiteur – le choix qui change tout
L’utilisateur doit sélectionner le bon délimiteur dans l’interface avant de lancer la conversion. L’outil propose trois options: virgule, point-virgule, tabulation. Pourquoi autant de choix? Parce que le CSV n’a pas de séparateur universel. Dans les régions francophones, les fichiers provenant d’Excel utilisent souvent le point-virgule, car la virgule est déjà utilisée comme séparateur décimal. Aux États-Unis, la virgule est la norme. Les tabulations sont courantes dans les exports de bases de données ou de systèmes plus anciens.
Si vous ne connaissez pas le délimiteur, ouvrez le fichier dans un éditeur de texte brut (pas Excel) et regardez la première ligne. Les colonnes y sont séparées par un caractère. Si vous voyez des virgules entre des guillemets, le délimiteur est probablement la virgule, mais il faut vérifier que les guillemets sont correctement appariés. Une erreur courante consiste à choisir « virgule » pour un fichier dont les champs contiennent des virgules (par exemple des adresses) mais qui utilise en réalité un point-virgule comme séparateur. L’outil divisera alors chaque adresse en plusieurs colonnes, produisant un tableau incohérent.
Le tableau suivant résume les pratiques courantes:
| Délimiteur | Utilisation typique | Exemple de sortie d’un logiciel |
|---|---|---|
| Virgule | États-Unis, exports de Google Sheets | nom,prénom,ville |
| Point-virgule | Canada français, exports d’Excel avec virgule décimale | nom;prénom;ville |
| Tabulation | Export de bases de données, certains CRM | nom\tprénom\tville |
Si vous hésitez, testez avec un petit fichier. L’outil ne détecte pas automatiquement le séparateur, donc une mauvaise sélection mène à un résultat inexploitable. Heureusement, la conversion se fait côté navigateur: vous pouvez réessayer sans rien envoyer à un serveur.
Types de données: du texte brut aux valeurs typées
Le CSV ne stocke que du texte. Chaque cellule est une chaîne, même si elle contient 2025-04-12, 42 ou vrai. Le JSON, en revanche, a des types: nombres, booléens, null, chaînes. L’outil ne tente aucune conversion automatique. Pourquoi? Parce que décider ce qui doit devenir un nombre ou une date est risqué. Un code postal comme 00123 deviendrait 123 si on le forçait en nombre. Un champ vide peut signifier une absence de donnée (null) ou une chaîne vide selon le contexte. L’outil laisse donc chaque champ sous forme de chaîne. Le fichier JSON de sortie contient des guillemets autour de toutes les valeurs, même les numériques.
C’est une protection pour les données comme les codes postaux, les numéros de téléphone ou les identifiants de produit qui commencent par un zéro. Dans un environnement qui typerait automatiquement les valeurs (comme certains parseurs JSON en JavaScript), ces zéros seraient perdus. Ici, ils sont préservés. Si vous chargez ensuite le JSON dans un outil qui convertit les chaînes en nombres (par exemple un tableau de base de données), vous devrez gérer la conversion manuellement ou stocker les données en tant que texte.
Les retours à la ligne à l’intérieur d’un champ CSV, s’ils sont correctement cités, sont conservés dans la chaîne JSON sous forme de \n. Les virgules à l’intérieur d’un champ cité restent à l’intérieur de la même valeur. Ce comportement est fidèle à la norme CSV.
Limites et messages d’erreur
L’outil impose des contraintes pour éviter les blocages. Si le fichier dépasse certaines dimensions, un message spécifique s’affiche:
- Fichier trop volumineux: « This file is too large. Use a file under ‹max›. » (la taille maximale exacte n’est pas précisée, mais elle existe.)
- Trop de lignes: « This table has more than ‹max› rows. »
- Trop de colonnes: « This table has more than ‹max› columns. »
- Aucune ligne de données: « This file has no table rows. »
- Échec d’analyse: « This CSV could not be parsed. » (problèmes de guillemets, de retours à la ligne, de lignes de longueur inégale.)
- Aucun fichier sélectionné: « Choose one file first. »
- Mauvais type de fichier: « Choose a CSV, JSON or XLSX file. »
- Délai d’attente dépassé: « This conversion is taking too long. Try a smaller file. »
Ces messages sont en anglais dans l’interface, mais leur sens est clair. Si vous rencontrez « This CSV could not be parsed », vérifiez d’abord le délimiteur. Si le message persiste, ouvrez le fichier dans un éditeur de texte et vérifiez que tous les champs contenant des virgules ou des sauts de ligne sont entourés de guillemets. Un guillemet manquant à la fin d’une ligne peut casser toute l’analyse.
Confidentialité: tout se fait dans le navigateur
Aucune donnée n’est envoyée vers un serveur. La conversion s’exécute entièrement côté client, dans le navigateur de l’utilisateur. C’est essentiel pour les fichiers contenant des informations sensibles: listes de clients, données financières, adresses. Vous pouvez donc utiliser l’outil sans craindre que vos fichiers soient stockés ou interceptés. La vitesse dépend de la puissance de votre machine et de la taille du fichier. Les fichiers très gros (centaines de milliers de lignes) peuvent ralentir ou dépasser le délai d’attente, d’où le message « This conversion is taking too long. Try a smaller file. » L’absence d’upload garantit aussi qu’il n’y a pas de limite de bande passante, seulement des limites de mémoire du navigateur.
Comparaison avec la conversion inverse
La transformation CSV vers JSON est plus simple que l’inverse (JSON vers CSV). En effet, un CSV ne contient pas d’objets imbriqués: chaque ligne a exactement le même nombre de colonnes. Il suffit d’extraire l’en-tête (première ligne) pour obtenir les clés, puis chaque ligne suivante devient un objet. Pas de problème de hiérarchie à aplatir. JSON vers CSV, en revanche, doit décider comment représenter des objets ou des tableaux à l’intérieur d’un champ. Les clés imbriquées sont souvent concaténées (ex: adresse.rue), et les tableaux peuvent être sérialisés en chaîne ou répétés sur plusieurs lignes. Cet outil ne fait pas ce travail de flattening.
Autre différence: le traitement des types. En JSON vers CSV, toutes les valeurs sont converties en chaînes, donc les nombres et booléens deviennent du texte. En CSV vers JSON, on part déjà de texte, donc aucun changement brusque. Mais cela signifie aussi qu’un nombre comme 42 dans le CSV reste la chaîne "42" dans le JSON. Si votre destinataire attend un nombre, il faudra le réécrire.
Foire aux questions (FAQ)
Q: Mon fichier CSV contient des codes postaux comme « H0H 0H0 ». Vont‑ils être conservés avec le zéro?
R: Oui. L’outil traite chaque champ comme une chaîne de caractères. Les zéros en tête ne sont pas supprimés. Le JSON contiendra "H0H 0H0" tel quel.
Q: J’ai des virgules dans mes champs, par exemple « 123, rue Principale ». Comment faire?
R: Assurez-vous que ces champs sont entourés de guillemets dans le fichier CSV. Exemple: "123, rue Principale",Montréal. Si les guillemets sont absents, l’outil interprétera la virgule comme un séparateur de colonne. Si le fichier est bien cité, le champ reste entier.
Q: Mon CSV a des retours à la ligne à l’intérieur d’une cellule. Est‑ce que ça fonctionne?
R: Oui, si la cellule est correctement citée. Le saut de ligne sera conservé dans la chaîne JSON comme \n. Si la cellule n’est pas citée, l’outil considérera le retour à la ligne comme la fin de la ligne de données, ce qui cassera la structure.
Q: Pourquoi l’outil ne détecte‑t‑il pas automatiquement le délimiteur? R: La détection automatique est complexe et peut échouer, surtout avec des fichiers contenant des virgules dans les données. L’outil préfère vous laisser choisir pour éviter les erreurs. Si vous ne savez pas, ouvrez le fichier dans un éditeur de texte et regardez quel caractère sépare les colonnes.
Q: Que faire si j’obtiens « This table has more than ‹max› rows. »? R: Votre fichier dépasse la limite de lignes autorisées. Vous pouvez diviser le CSV en plusieurs fichiers plus petits, ou utiliser un autre outil adapté aux gros volumes.
Q: Mon fichier est valide, mais l’outil affiche « This CSV could not be parsed. » Qu’est‑ce qui peut causer cela? R: Plusieurs causes possibles: guillemets mal appariés, ligne avec un nombre de colonnes différent des autres, présence d’un caractère de contrôle invisible. Ouvrez le fichier dans un éditeur hexadécimal ou un bon éditeur de texte qui montre les caractères spéciaux. Corrigez les guillemets manquants ou les lignes irrégulières.