Convertisseur CSV vers JSON

Transformez un tableau CSV en tableau JSON d'objets, entièrement dans votre navigateur.

Fonctionne entièrement dans votre navigateur. Rien n'est envoyé, journalisé ni conservé.

Collez un export de tableur et récupérez un tableau JSON, un objet par ligne, indexé par les noms de colonnes. Tout se passe dans votre navigateur : un fichier rempli de fiches clients, de salaires ou de lignes de commande ne quitte jamais votre machine.

Comment ça marche

Le document est lu caractère par caractère selon la RFC 4180, ce qui permet à un champ de contenir le séparateur, un saut de ligne ou un guillemet : tout ce qui se trouve entre guillemets doubles est littéral, et un guillemet doublé vaut un guillemet. Découper sur les virgules et les retours à la ligne casserait dès la première adresse contenant une virgule.

La première ligne devient les noms de colonnes sauf indication contraire, auquel cas chaque ligne revient sous forme de tableau plutôt que d'objet. Un nom vide devient column_1, column_2 et ainsi de suite selon la position, et un nom répété reçoit un suffixe numérique, car deux clés identiques dans un même objet font disparaître silencieusement la première colonne.

Chaque valeur arrive sous forme de chaîne, parce que le CSV n'a pas de types. Lire les types à la place est une case à cocher et non le comportement par défaut : l'inférence est ce qui transforme un code article 007 en le nombre 7. Lorsqu'elle est active, elle est délibérément prudente — un zéro initial, un plus initial ou une espace autour maintiennent la valeur en chaîne, tout comme un entier trop grand pour survivre en double précision.

Exemples

Cas Saisie Résultat
Un champ entre guillemets contenant le séparateur name,city "Doe, John",Geneva [ { "name": "Doe, John", "city": "Geneva" } ]

Questions fréquentes

Mon fichier utilise des points-virgules. Est-ce encore du CSV ?

Oui, et c'est le cas normal dans une bonne partie de l'Europe. Un tableur qui enregistre en CSV dans une locale écrivant les décimales avec une virgule ne peut pas utiliser en même temps la virgule comme séparateur : il emploie donc le point-virgule. Choisissez-le dans la liste des séparateurs ; la tabulation et la barre verticale sont là pour la même raison.

Pourquoi mon code postal a-t-il perdu son zéro initial ?

Il ne l'a pas perdu, sauf si vous avez demandé l'inférence de types. Sans elle, chaque valeur reste une chaîne exactement telle qu'écrite. Avec elle, les valeurs commençant par un zéro restent malgré tout des chaînes précisément pour cette raison, tout comme celles qui commencent par un plus ou qui sont entourées d'espaces.

Que devient une ligne qui n'a pas le bon nombre de champs ?

Une ligne trop courte est complétée par des chaînes vides, car un champ final vide est régulièrement omis par le programme qui a écrit le fichier. Une ligne trop longue conserve ses valeurs supplémentaires sous des noms positionnels plutôt que de les abandonner : rien ne disparaît sans que vous le voyiez.

Mon fichier est-il envoyé quelque part ?

Non. La page charge un petit script qui analyse le document localement. Vous pouvez vous déconnecter du réseau une fois la page chargée, l'outil continue de fonctionner.

Bon à savoir

  • Tout se passe dans votre navigateur. Le document n'est ni téléversé, ni journalisé, ni stocké.
  • Les guillemets suivent la RFC 4180 : un champ est mis entre guillemets lorsqu'il contient le séparateur, un guillemet double ou un saut de ligne, et un guillemet double à l'intérieur d'un champ entre guillemets s'écrit deux fois. Les barres obliques inverses sont des caractères ordinaires et ne sont jamais traitées comme des échappements.

Sources

Tous les outils Code