MiServe DevTools

Vos autocollants

Épinglez vos outils ici. Ils sont enregistrés dans ce navigateur.

Convertisseur CSV vers JSON

Convertissez du CSV en JSON et du JSON en CSV, avec les champs entre guillemets, la virgule, le point-virgule, la tabulation ou la barre verticale comme séparateur, la déduction des types et un aperçu du tableau.

Sortie JSON

S'exécute dans votre navigateur. Rien de ce que vous collez n'est envoyé.

À propos de cet outil

Ce qu'est le CSV, et en quoi les fichiers diffèrent

La RFC 4180 décrit le CSV comme des enregistrements séparés par des sauts de ligne, composés de champs séparés par des virgules. Un champ qui contient une virgule, un guillemet ou un saut de ligne est placé entre guillemets doubles, et un guillemet à l'intérieur est doublé. Le format n'a pas de types, donc toute valeur est du texte, et un fichier ne peut pas indiquer quel séparateur ni quel encodage de caractères il utilise.

Dans la pratique, les fichiers varient. Un tableur réglé sur une région qui utilise la virgule comme séparateur décimal exporte généralement avec des points-virgules, les outils de base de données exportent souvent avec des tabulations, et les fins de ligne peuvent être CRLF, LF ou CR. Cet outil lit tous ces cas, retire l'indicateur d'ordre des octets (BOM), ignore les lignes vides et garde comme texte un guillemet isolé dans un champ sans guillemets.

Comment le CSV devient du JSON

Avec Détection auto, l'outil découpe les 20 premières lignes avec une virgule, un point-virgule, une tabulation et une barre verticale, et note chaque séparateur selon le nombre de colonnes qu'il donne et le nombre de lignes qui ont ce même nombre de colonnes. Un séparateur qui laisse des guillemets au milieu d'un champ obtient une note plus basse. L'aperçu montre le résultat : une mauvaise détection se repère donc facilement et se corrige à la main.

Avec Déduire les types, un champ vide devient null, true et false deviennent des booléens, et un nombre décimal simple devient un nombre JSON écrit exactement comme à l'origine : 49.90 reste 49.90. Tout le reste demeure une chaîne, y compris les valeurs qui ne font que ressembler à des nombres : 007, +39 et 1e5 sont plus souvent des codes que des quantités.

Une ligne qui a moins ou plus de champs que l'en-tête est quand même convertie, et son numéro de ligne est indiqué. Dans le tableau d'objets, les clés manquantes sont omises et les champs en trop sont nommés column_N d'après leur position. Une cellule d'en-tête vide reçoit le même genre de nom, et un nom répété reçoit un suffixe comme _2, pour qu'aucune valeur n'en écrase une autre.

Comment le JSON devient du CSV

Un tableau d'objets donne une ligne par objet. L'en-tête est l'union de toutes les clés, dans l'ordre de leur première apparition, et un objet auquel il manque une clé reçoit un champ vide. Un tableau ou un objet imbriqué est écrit dans sa cellule sous forme de texte JSON, et null devient un champ vide. Un tableau de tableaux est écrit ligne par ligne, tel quel.

Les champs ne sont mis entre guillemets que s'ils contiennent le séparateur, un guillemet ou un saut de ligne. Le fichier téléchargé sépare les enregistrements par CRLF, comme le prévoit la RFC 4180.

Questions

Mon fichier est-il envoyé à un serveur ?

Non. Le fichier est lu par votre navigateur et converti sur votre appareil. L'outil n'envoie aucune requête réseau avec lui, et la politique de sécurité du site bloque les requêtes vers tout autre hôte.

Pourquoi une valeur comme 007 reste-t-elle une chaîne ?

Les nombres JSON ne peuvent pas commencer par des zéros, et transformer 007 en 7 ferait perdre une information dans un code postal ou une référence produit. L'outil ne convertit que les nombres décimaux simples. Désactivez la déduction des types pour garder toutes les valeurs sous forme de chaînes.

Que faire si le mauvais séparateur est détecté ?

Choisissez vous-même le séparateur dans la liste. La détection examine les 20 premières lignes et peut être trompée par un fichier à une seule colonne ou aux lignes très irrégulières. La ligne à côté du titre de l'aperçu indique le séparateur détecté.

Comment sont traités les sauts de ligne dans une cellule ?

Un champ entre guillemets doubles peut contenir des sauts de ligne, qui deviennent \n dans la chaîne JSON. Les numéros de ligne des avertissements sont ceux du fichier : après un tel champ, ils sont donc plus élevés que les numéros d'enregistrement.

Autres outils de la catégorie Données