Outils pour Développeurs

CSV vers JSON

Convertissez du CSV avec une ligne d'en-tête en un tableau JSON d'objets bien ordonné.

Évaluez cet outil

Comment utiliser CSV vers JSON

  1. Collez du CSV avec une ligne d'en-tête en haut.
  2. Chaque ligne devient un objet JSON dont les clés sont les en-têtes.
  3. Copiez le JSON formaté obtenu.

À propos de CSV vers JSON

Le CSV paraît trivial et ne l'est pas. Il n'existe pas de norme CSV unique — la RFC 4180 est ce qui s'en rapproche le plus, et de nombreux logiciels en ignorent des parties. Un champ contenant une virgule doit être entouré de guillemets doubles ; un guillemet à l'intérieur d'un champ entre guillemets est échappé en le doublant ; et un champ entre guillemets peut contenir des sauts de ligne, ce qui explique pourquoi découper un CSV sur les retours à la ligne est un bug qui ne demande qu'à se produire. Cet outil utilise un véritable analyseur caractère par caractère, de sorte que ces trois cas passent intacts, et les fins de ligne Windows CRLF sont normalisées.

La première ligne est traitée comme l'en-tête et fournit les clés ; chaque ligne suivante devient un objet dans un tableau JSON formaté. Les lignes vides sont ignorées. Chaque valeur reste une chaîne de caractères — aucune déduction de type — ce qui est délibéré : cela évite que des identifiants à zéro non significatif, des numéros de téléphone et des codes postaux ne soient discrètement transformés en nombres.

Les limites honnêtes. Le délimiteur est une virgule, donc les exports séparés par des points-virgules ou des tabulations doivent d'abord être convertis. Il n'y a pas de suppression de la marque BOM, donc une marque d'ordre d'octets UTF-8 enregistrée par Excel se retrouve collée à la première clé. Les lignes ayant plus de champs que d'en-têtes perdent les champs en trop ; les lignes en ayant moins reçoivent des chaînes vides ; les en-têtes en double s'écrasent mutuellement. Tout s'exécute entièrement dans votre navigateur, donc un export client n'est jamais téléversé. Pour la conversion inverse, utilisez JSON vers CSV ; pour réduire le résultat, le minifieur JSON.

Questions fréquentes

La première ligne doit-elle être un en-tête ?

Oui. La première ligne fournit toujours les clés des objets, et chaque ligne suivante devient un objet. Si votre fichier n'a pas de ligne d'en-tête, ajoutez-en une d'abord — sinon votre premier enregistrement est consommé comme noms de clés.

Gère-t-il les virgules et les sauts de ligne à l'intérieur d'un champ ?

Oui, tant que le champ est entouré de guillemets doubles. L'analyseur suit l'état des guillemets caractère par caractère, donc les virgules, les sauts de ligne et les guillemets doublés (\"\") à l'intérieur d'un champ entre guillemets sont tous préservés au lieu de scinder la ligne.

Pourquoi mes nombres sont-ils des chaînes dans le résultat ?

C'est voulu. Deviner les types corrompt des données réelles — les identifiants à zéro non significatif perdent leurs zéros, les grands nombres perdent en précision, et des valeurs comme 1-2 ou des dates sont mal interprétées. Tout reste une chaîne ; convertissez vous-même les champs dont vous avez réellement besoin dans votre code.

Peut-il gérer des fichiers séparés par des points-virgules ou des tabulations ?

Non. Le délimiteur est une virgule, un point c'est tout. Si votre export utilise des points-virgules — fréquent lorsqu'Excel fonctionne avec des paramètres régionaux européens — réexportez-le en séparé par des virgules, ou remplacez les délimiteurs avant de coller.

Ma première clé a des caractères étranges devant elle. Pourquoi ?

C'est une marque d'ordre d'octets UTF-8, qu'Excel écrit en début de fichier. Elle n'est pas retirée ici, donc elle fait partie du premier nom d'en-tête. Supprimez le caractère invisible en début avant de coller, ou enregistrez le fichier sans BOM.