100 % local — vos données ne quittent jamais votre navigateur

CSV en JSON — les nombres restent des nombres

Transformez un tableau CSV en tableau d’objets JSON dont les clés viennent de l’en-tête. Nombres et booléens sortent typés, prêts à sommer ou comparer.

Instantané Privé Zéro cookie
Indentation
Délimiteur

Entrée CSV

Sortie JSON

Ce que fait cet outil

La ligne d’en-tête devient les clés, et chaque ligne suivante un objet du tableau. Les valeurs sont typées plutôt que mises entre guillemets aveuglément : 30 ressort en nombre 30, true en booléen.

Le délimiteur est détecté à la lecture, si bien qu’un export européen séparé par des points-virgules fonctionne sans rien régler.

Ce que la détection de types touche, et ce qu’elle laisse

Voici les règles qui comptent, parce que c’est là que les convertisseurs détruisent habituellement des données :

  • un zéro en tête garde la valeur en chaîne — 01 reste "01" ;
  • l’hexadécimal et la notation exponentielle restent des chaînes : 0x10 et 1e5 ne sont pas des nombres ici ;
  • un signe plus explicite garde le texte, +7 reste une chaîne, alors que -3 devient un nombre ;
  • true et false deviennent des booléens, en respectant la casse — TRUE reste une chaîne ;
  • un champ vide devient une chaîne vide, jamais null ;
  • le texte null reste la chaîne "null", le CSV n’ayant aucun moyen d’exprimer l’absence.

Une dernière, facile à manquer : l’espace autour d’un délimiteur fait partie du champ. Dans 1, 2 la seconde valeur vaut " 2" — une chaîne, avec son espace, et non le nombre 2.

Quand une ligne ne correspond pas à son en-tête

C’est une erreur, et c’est délibéré. Too many fields comme Too few fields indiquent le nombre attendu et le nombre analysé, ce qui suffit à localiser la ligne. Compléter ou tronquer en silence décalerait toutes les colonnes suivantes et vous rendrait un fichier d’apparence correcte.

Les lignes réellement vides sont ignorées. Une ligne dont tous les champs sont vides est conservée : c’est une vraie ligne.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi mon code postal 01234 reste-t-il une chaîne ?
Parce qu’un zéro en tête a du sens. Le convertir en nombre donnerait silencieusement 1234 : toute valeur commençant par zéro est donc gardée en texte, et les codes postaux, références produit et numéros de téléphone survivent intacts.
Pourquoi une ligne bancale lève-t-elle une erreur plutôt qu’un avertissement ?
Parce qu’elle est ambiguë : l’outil ne peut pas savoir si un champ manque ou si un délimiteur s’est glissé en trop. Le message indique le nombre de champs attendus et analysés, de quoi retrouver la ligne.
Comment tout garder en texte ?
Désactivez **Détecter les types** au-dessus de l’éditeur. Toutes les valeurs ressortent alors entre guillemets, ce qu’il faut quand le JSON part vers un système qui fait sa propre analyse.

Convertisseurs associés