FreeToGenerate.com

100 % gratuit · sans inscription · rien ne quitte votre navigateur

Collez quelque chose ci-dessus pour voir le résultat.

Tout s’exécute dans votre navigateur — rien n’est envoyé, un export clients ne quitte donc jamais votre machine.

Aussi disponible en : English · Español · Português · العربية

Convertir un CSV en JSON

Un vrai analyseur CSV en JavaScript — délimiteur détecté, lignes irrégulières et nombres à risque signalés, tout dans votre navigateur.

Qu’est-ce qu’un convertisseur CSV vers JSON ?

Convertir un CSV en JSON consiste à transformer des lignes séparées par un délimiteur — virgule, point-virgule, tabulation ou barre verticale — en une liste d’objets JSON, un objet par ligne, avec les intitulés de l’en-tête comme clés. Cet outil fait exactement ça, entièrement dans l’onglet de votre navigateur : vous collez le CSV, il est analysé par une machine à états plutôt que par un simple découpage sur les virgules, puis le résultat s’affiche en JSON indenté ou minifié. Aucun fichier n’est envoyé à un serveur.

Le sélecteur de délimiteur démarre sur celui détecté automatiquement dans votre texte, mais reste modifiable si la détection se trompe sur un fichier atypique. Une case à cocher traite la première ligne comme un en-tête, et une autre convertit les nombres et les booléens en types JSON natifs plutôt qu’en chaînes de caractères — décochée par défaut, pour des raisons détaillées plus bas. Sous le résultat, l’outil affiche le nombre de lignes et de colonnes détectées, puis signale trois problèmes précis : les lignes dont le nombre de champs ne correspond pas à l’en-tête, un guillemet ouvert qui n’a jamais été refermé, et tout nombre trop long pour être représenté sans perte par un double JavaScript.

Comment l’utiliser

  1. Collez votre CSV dans le champ du haut ; l’outil détecte automatiquement le délimiteur parmi virgule, point-virgule, tabulation et barre verticale, et présélectionne celui qu’il a identifié.
  2. Réglez les options cochez ou décochez la ligne d’en-tête, décidez si les nombres et les booléens doivent être convertis en types JSON, et choisissez l’indentation du résultat (2 ou 4 espaces, tabulation, ou minifié).
  3. Vérifiez et copiez consultez le nombre de lignes et de colonnes, lisez les avertissements sur les lignes irrégulières, les guillemets non refermés ou les nombres trop longs, puis copiez le JSON avec le bouton dédié.

Pourquoi analyser du CSV est plus difficile qu’il n’y paraît

Il n’existe pas de norme CSV. La RFC 4180, publiée en 2005, décrit ce que les logiciels faisaient déjà à l’époque ; elle n’a jamais eu le statut de spécification obligatoire que son nom laisse penser. Résultat : tout fichier CSV réel repose sur une hypothèse quant au dialecte qui l’a produit, et cette hypothèse varie selon le pays, le logiciel et même la version du logiciel. Une grande partie de l’Europe utilise le point-virgule comme délimiteur, précisément parce que la virgule y sert de séparateur décimal ; les tabulations et les barres verticales apparaissent aussi dans des exports réels.

Découper un CSV sur les virgules et les retours à la ligne — ce que fait la quasi-totalité des analyseurs écrits en une ligne de code — corrompt silencieusement tout fichier contenant une adresse, un commentaire ou un guillemet entre guillemets. Cet outil utilise à la place une machine à états qui suit si elle se trouve à l’intérieur ou à l’extérieur d’un champ entre guillemets. Concrètement : un champ entre guillemets contenant une virgule reste un seul champ ; un saut de ligne entre guillemets ne coupe pas la ligne en deux ; et un guillemet doublé ressort comme un vrai guillemet dans la valeur. Cet analyseur a été confronté à Papa Parse, une bibliothèque CSV établie installée uniquement pour la vérification puis désinstallée : sur 18 documents de test, concordance totale ; et 2 000 tableaux construits au hasard ont été écrits avec le système de guillemets de l’outil puis relus, tous identiques au premier caractère près.

La détection du délimiteur se fait par cohérence entre les lignes, pas par simple fréquence des caractères. Compter les occurrences choisirait à tort la virgule quand celle-ci se cache à l’intérieur d’un champ entre guillemets, alors que le vrai délimiteur est ailleurs. L’outil vérifie plutôt que le même délimiteur découpe chaque ligne en un nombre cohérent de champs sur l’ensemble du texte collé, ce qui donne la bonne réponse même dans ce cas piégeux.

Le problème des nombres est le plus important, et les exports de tableur en sont pleins. Des valeurs ressemblent à des nombres sans en être : 007 est un code postal ou un numéro de commande qui deviendrait 7, un numéro de téléphone avec indicatif n’est pas un calcul, et un point final isolé n’est même pas un nombre JSON valide. C’est pourquoi la conversion est facultative et décochée par défaut ; même activée, l’outil ne convertit que les valeurs écrites exactement comme JSON écrit ses nombres. Un test mesuré illustre l’enjeu : analyser l’identifiant 12345678901234567890 avec le JSON du navigateur renvoie 12345678901234567000, parce qu’un double ne conserve qu’environ 17 chiffres significatifs et remplace silencieusement les quatre derniers. Cet outil conserve les chiffres tels qu’ils ont été tapés d’un bout à l’autre — l’identifiant survit donc intact — et il signale ces valeurs pour que vous sachiez que le prochain programme dans la chaîne ne sera peut-être pas aussi prudent.

Limites assumées

Le format CSV lui-même ne sait pas représenter deux choses, et ce n’est pas une limite de cet outil mais du format. Une dernière ligne vide en fin de fichier est indiscernable d’un simple retour à la ligne final ; les deux s’écrivent de façon identique. Un champ vide ne peut pas non plus être distingué de façon fiable d’une chaîne vide entre guillemets une fois le fichier écrit sur le disque.

Un guillemet mal formé n’a pas de bonne réponse universelle. La RFC 4180 n’autorise pas un guillemet à se refermer au milieu d’un champ, mais les lecteurs réels divergent sur ce qu’il faut faire quand ça arrive quand même : cet outil termine la partie entre guillemets dès la fermeture et rend trois champs, tandis que Papa Parse continue de lire et n’en rend que deux — un écart vérifié entre les deux, pas supposé.

La conversion des nombres et des booléens reste un choix qui vous revient, fichier par fichier. Elle est décochée par défaut parce que la majorité des colonnes qui ressemblent à des nombres dans un export réel — identifiants, codes postaux, numéros de téléphone — sont en réalité du texte. Et cet outil contrôle ce qu’il écrit, pas ce qu’un tableur en fait ensuite. Le sens inverse est traité par la conversion de JSON en CSV.

Pourquoi est-ce gratuit ?

Cet outil est gratuit parce que tout le travail — détection du délimiteur, analyse par machine à états, conversion en JSON — s’exécute dans votre navigateur, sur votre propre machine. Il n’y a pas de serveur qui reçoit votre fichier, donc pas de compte à créer, pas de limite de taille imposée par une file d’attente, et pas de filigrane à retirer moyennant paiement.

Cela a une conséquence concrète pour un export CSV qui contient des données de clients, de commandes ou d’employés : rien ne quitte votre machine pendant la conversion, ce qui évite d’avoir à faire confiance à un tiers pour un fichier que vous n’auriez peut-être pas le droit de partager de toute façon.