Skip to content

Convertisseur CSV vers JSON

Convertissez du CSV en JSON dans le navigateur. RFC 4180, inférence de types, ligne d'en-tête, sûr pour grands entiers. 100 % privé, sans envoi.

Sans pistage Fonctionne dans le navigateur Gratuit
Préréglage
Options · , · auto · LF · header · no BOM · flatten
Délimiteur
1re ligne = en-tête
Inférer types (nombres, booléens, null)
0 car. 0 lignes
Sortie JSON
0 lignes · 0 col.
Vérifié pour la conformité RFC 4180, la justesse de l'inférence de types, la préservation de la précision des grands entiers et le comportement des noms automatiques sans en-tête — Go Tools Engineering Team · 9 mai 2026

Qu'est-ce que JSON et pourquoi convertir depuis CSV ?

JSON (JavaScript Object Notation) est le format universel pour les réponses d'API, les fichiers de configuration et l'échange de données structurées — chaque langage de programmation moderne, chaque base de données et chaque framework web a un support JSON de première classe. CSV (Comma-Separated Values), en revanche, est le format tabulaire le plus ancien et le plus largement pris en charge — chaque tableur, chaque export de base de données et chaque outil d'analyse peut le produire. Convertir entre les deux est l'une des corvées les plus courantes en ingénierie de données : vous recevez un CSV depuis un tableur, un dump de base de données ou un export tiers, et vous avez besoin de JSON pour alimenter une API, hydrater un frontend ou charger dans un magasin NoSQL. Cet outil est conçu pour ce chemin de conversion et gère quatre scénarios que la plupart des convertisseurs en ligne bâclent.

Cet outil présente quatre différenciateurs importants par rapport aux convertisseurs en ligne CSV-vers-JSON typiques :

**1. Analyseur à machine à états RFC 4180.** CSV semble simple mais les règles de mise entre guillemets sont subtiles : un champ encadré de guillemets doubles peut contenir des virgules, des sauts de ligne intégrés et des guillemets doubles échappés (doublés, comme ""). Les analyseurs naïfs par découpage sur la virgule échouent sur les données du monde réel — adresses avec virgules, champs textuels multilignes et valeurs entre guillemets contenant des guillemets. Cet outil implémente un véritable analyseur à machine à états suivant RFC 4180 (la spécification IETF pour CSV), gérant correctement les champs entre guillemets, les délimiteurs intégrés, les fins de ligne intégrées et les guillemets échappés dans toutes les directions. La sortie est réversible via le module csv de Python, PostgreSQL COPY, AWS S3 SELECT et tout analyseur conforme.

**2. Inférence de types avec sécurité grand-entier.** Avec Inférer les types activé, les chaînes numériques deviennent des nombres, true/false deviennent des booléens, les cellules vides deviennent null. Mais le pipeline d'inférence a deux garde-fous importants : les chaînes à zéro initial (007, 0123) sont conservées comme chaînes parce que les zéros initiaux indiquent des identifiants — la conversion en nombre les supprimerait silencieusement. Et les entiers au-dessus de 2^53 - 1 (9007199254740991) sont également conservés comme chaînes pour éviter la perte de précision IEEE 754. Les ID snowflake Twitter, ID Discord, champs Long MongoDB et resourceVersion K8s restent tous exacts au lieu d'être silencieusement arrondis. Les chaînes de date ISO sont intentionnellement conservées comme chaînes — JSON n'a pas de type date natif.

**3. Noms automatiques d'en-tête ou utilisation de la première ligne.** Avec En-tête activé (par défaut), la première ligne est traitée comme noms de colonnes et chaque ligne suivante devient un objet JSON indexé par ces noms. Avec En-tête désactivé, l'analyseur nomme automatiquement les colonnes col1, col2, col3 — utile pour les dumps de données brutes sans ligne d'en-tête. La ligne de puces Délimiteur couvre les quatre séparateurs les plus courants : virgule (RFC 4180 par défaut), point-virgule (locales Excel-EU), tabulation (TSV depuis les outils Unix et entrepôts de données) et pipe (champs à forte densité de virgules). Choisissez la puce et analysez — aucune configuration manuelle nécessaire pour les CSV typiques du monde réel.

**4. Confidentialité 100 % basée sur le navigateur.** Vos données CSV — qui contiennent souvent des données personnelles d'utilisateurs, des exports de bases de données internes, des enregistrements clients et des exports de production — ne quittent jamais votre navigateur. Aucune donnée n'est envoyée à un serveur, aucune journalisation, aucune analyse ne capture l'entrée. Vous pouvez le vérifier dans l'onglet Réseau de votre navigateur. C'est la seule façon sûre de manipuler des données sensibles dans un outil en ligne. Voyez la direction inverse en cliquant sur Inverser ou utilisez notre Convertisseur JSON vers CSV compagnon quand CSV est votre cible. Besoin de valider la sortie JSON avant de la consommer ? Essayez notre Formateur JSON.

Les points forts de JSON sont les types précis, l'imbrication native et une spécification stricte qui s'analyse de manière identique partout — le bon format quand une machine consomme les données. Les points forts de CSV sont l'universalité et la lisibilité humaine — le bon format quand un humain ouvre un tableur. Le bon outil dépend du consommateur : un humain lisant un tableur → CSV, une machine consommant une API → JSON. Ce convertisseur fait le pont dans les deux directions.

// Input CSV (comma + LF, header on, infer types on)
id,name,active,score
1,Alice,true,98.5
2,Bob,false,87
3,Carol,true,

// Output JSON
[
  { "id": 1, "name": "Alice", "active": true, "score": 98.5 },
  { "id": 2, "name": "Bob", "active": false, "score": 87 },
  { "id": 3, "name": "Carol", "active": true, "score": null }
]

// Same input with Header off (no first-row keys)
1,Alice,true,98.5
2,Bob,false,87

// Becomes
[
  { "col1": 1, "col2": "Alice", "col3": true, "col4": 98.5 },
  { "col1": 2, "col2": "Bob", "col3": false, "col4": 87 }
]

Fonctionnalités clés

Analyseur à machine à états RFC 4180

Analyseur à machine à états strict suivant la spécification CSV de l'IETF : gestion correcte des champs entre guillemets, des délimiteurs intégrés, des CR/LF intégrés et des guillemets doubles échappés (doublés). La sortie fait des allers-retours propres via le csv de Python, PostgreSQL COPY et AWS S3 SELECT.

Inférence de types avec sécurité grand-entier

Inférer les types activé convertit les chaînes numériques en nombres, true/false en booléens, les cellules vides en null. Les entiers au-dessus de 2^53 - 1 restent en chaînes pour éviter la perte de précision IEEE 754 ; les chaînes à zéro initial (007, 0123) restent en chaînes pour préserver la sémantique d'identifiant.

En-tête activé/désactivé avec noms automatiques

En-tête activé (par défaut) utilise la première ligne comme clés JSON. En-tête désactivé nomme automatiquement les colonnes col1, col2, col3 dans l'ordre — utile pour les dumps de données brutes et les CSV générés par machine sans ligne d'en-tête. Les noms automatiques sont déterministes et adaptés aux pipelines.

Délimiteurs virgule, point-virgule, tab, pipe

Puces Délimiteur en un clic pour les quatre séparateurs les plus courants : `,` (RFC 4180 par défaut), `;` (locales Excel-EU), `\t` (TSV depuis outils Unix, BigQuery, Snowflake) et `|` (champs textuels libres à forte densité de virgules). L'analyseur change de mode immédiatement — pas besoin de convertir les fichiers d'abord.

Détection des grands entiers

Les entiers au-dessus de 2^53 sont détectés pendant l'analyse et préservés sous forme de chaînes dans le JSON — les ID snowflake Twitter, ID Discord, champs Long MongoDB et resourceVersion K8s restent exacts au lieu d'être silencieusement arrondis par le type Number IEEE 754 de JavaScript.

Bidirectionnel avec Inverser

Un bouton Inverser le sens unique bascule la conversion sur place : l'entrée devient JSON, la sortie devient CSV, le texte actuel est préservé. Faites un aller-retour de vos données dans les deux directions pour vérifier la conversion sans perte avant de l'envoyer dans un pipeline.

Exemples

Export de tableur avec en-tête

id,name,email,role
1,Alice,alice@example.com,admin
2,Bob,bob@example.com,editor
3,Carol,carol@example.com,viewer
4,Dan,dan@example.com,viewer

CSV standard issu d'un tableur. Avec En-tête activé et Inférer les types activé, vous obtenez un JSON typé propre : les entiers restent des entiers, les booléens et null sont détectés.

Export de journal délimité par tabulations (TSV)

ts	event	user	duration
2026-05-09T10:00:00Z	signup	alice	142
2026-05-09T10:01:00Z	login	alice	87
2026-05-09T10:02:00Z	checkout	alice	312
2026-05-09T10:03:00Z	logout	alice	44

Choisissez `\t` (Tab) comme délimiteur. L'option En-tête activée par défaut utilise automatiquement la première ligne comme clés.

CSV Excel-EU (délimiteur point-virgule, CRLF)

id;name;price
1;Alice;1234,56
2;Bob;9876,54
3;Carol;42,00

Excel dans les locales DE/FR/IT/ES émet des séparateurs `;` parce que la virgule est la marque décimale. Choisissez `;` dans la puce Délimiteur — l'analyseur gère le reste.

Virgules intégrées et guillemets échappés

name,role,note
"Smith, Jr.",admin,"He said ""hi"""
"Doe, Jane",editor,"Two
lines"

Mise entre guillemets RFC 4180 standard : les champs entre guillemets peuvent contenir des délimiteurs et des guillemets échappés (doublés). L'analyseur est une machine à états — il ne découpe jamais à l'intérieur des guillemets.

CSV avec ID grand-entier

id,event,user
9007199254740993,signup,alice
9007199254740994,login,bob
9007199254740995,checkout,carol

Les grands entiers dépassent la plage sûre de JavaScript (2^53 - 1). Avec Inférer les types activé, l'analyseur détecte cela et conserve la valeur en chaîne pour préserver la précision — sans troncature.

CSV sans en-tête

1,Alice,admin
2,Bob,editor
3,Carol,viewer
4,Dan,viewer

Désactivez En-tête ; les colonnes sont nommées automatiquement `col1`, `col2`, `col3`. Utilisez ceci pour les dumps de données brutes sans ligne d'en-tête.

Comment utiliser

  1. 1

    Collez votre CSV

    Entrez ou collez votre CSV dans le champ de saisie ci-dessus. L'outil accepte les données délimitées par virgule, point-virgule, tabulation et pipe. Vous pouvez aussi cliquer sur « Charger un exemple » pour essayer un échantillon comme un export de tableur, un journal TSV ou un CSV Excel-EU avec points-virgules.

  2. 2

    Choisissez le délimiteur (ou Tab)

    Cliquez sur `,` (par défaut), `;` (point-virgule Excel-EU), `\t` (TSV) ou `|` (Pipe) pour basculer le délimiteur en un clic. Ouvrez le panneau Options pour un contrôle fin : En-tête activé/désactivé et Inférer les types activé/désactivé. En-tête désactivé nomme automatiquement les colonnes col1, col2, col3.

  3. 3

    Copiez ou téléchargez le JSON

    Cliquez sur Copier pour récupérer le JSON dans votre presse-papiers, ou sur Télécharger pour le sauvegarder en fichier .json prêt pour votre code, API ou pipeline. Pour les allers-retours, cliquez sur Inverser le sens pour reconvertir le JSON en CSV sur place.

Pièges courants de conversion

Virgule intégrée non encadrée de guillemets dans la source

Si votre CSV a été construit à la main avec un join(',') naïf, tout champ contenant une virgule (Smith, Jr. ou 1,234.56) casse les limites de colonnes — l'analyseur voit des colonnes supplémentaires là où il devrait y en avoir une. La solution est d'encadrer le champ fautif de guillemets doubles selon RFC 4180. Cet outil gère correctement les champs entre guillemets, mais le CSV source doit utiliser une mise entre guillemets correcte.

✗ Incorrect
name,role
Smith, Jr.,admin
// Parser reads 3 columns: "Smith", " Jr.", "admin"
✓ Correct
name,role
"Smith, Jr.",admin
// Parser reads 2 columns: "Smith, Jr.", "admin"

Points-virgules Excel-EU analysés comme virgule

Les locales européennes d'Excel (Allemagne, France, Espagne, Italie, etc.) émettent des CSV délimités par point-virgule parce que la virgule est réservée au séparateur décimal. Si vous laissez le délimiteur sur `,` (par défaut), chaque ligne se tasse dans une seule colonne avec des points-virgules intégrés. Choisissez la puce Délimiteur `;` — l'analyseur passe en mode point-virgule et produit des colonnes correctes.

✗ Incorrect
// Wrong delimiter (default comma) on Excel-EU file
id;name;price
1;Alice;1234,56
// Each row becomes one column: { col1: "1;Alice;1234,56" }
✓ Correct
// Correct: pick `;` Delimiter chip
id;name;price
1;Alice;1234,56
// Output: { id: 1, name: "Alice", price: "1234,56" }

Les ID grand-entier perdent en précision après JSON.parse

Les ID snowflake Twitter, ID Discord et autres entiers 64 bits dépassent la plage sûre de JavaScript (2^53 - 1) et perdent en précision quand JSON.parse() les lit comme nombres. Avec Inférer les types activé, cet outil détecte les valeurs au-delà de la limite sûre et les conserve à la place comme chaînes, préservant les chiffres exacts. Utilisez BigInt("9007199254740993") dans votre code pour reconvertir en type numérique.

✗ Incorrect
// Without big-int detection
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost)
✓ Correct
// With Infer types on, big integers stay as strings
{"id": "9007199254740993"}
// Use BigInt(value) in code to preserve precision

Ligne d'en-tête contenant des espaces

Si votre en-tête CSV est `id, name, email` (avec espaces après les virgules), les clés JSON deviennent "id", " name", " email" — y compris l'espace initial. L'analyseur préserve l'en-tête exactement comme donné, selon RFC 4180. La solution est soit de nettoyer le CSV source avant de coller, soit de renommer les clés en aval (jq 'with_entries(.key |= ltrimstr(" "))' ou JavaScript Object.fromEntries(Object.entries(o).map(([k,v]) => [k.trim(), v]))).

✗ Incorrect
id, name, email
1, Alice, alice@example.com
// Output keys: "id", " name", " email" (with leading spaces)
✓ Correct
id,name,email
1,Alice,alice@example.com
// Output keys: "id", "name", "email" (clean)

Longueur de ligne incohérente

Quand les lignes du CSV ont des comptes de colonnes différents (certaines avec virgules en fin, d'autres non), l'analyseur remplit les cellules manquantes avec des chaînes vides (ou null quand Inférer les types est activé) et supprime les supplémentaires au-delà de la longueur de l'en-tête. Un avertissement Notes de schéma apparaît pour que vous sachiez que les lignes ont été normalisées. C'est généralement bien, mais vérifiez la sortie si les consommateurs en aval attendent une forme de ligne stricte.

✗ Incorrect
name,role,note
Alice,admin
Bob,editor,first day
// Row 1 is short by one cell
✓ Correct
// Output (note empty/null cell in row 1)
[
  { "name": "Alice", "role": "admin", "note": null },
  { "name": "Bob", "role": "editor", "note": "first day" }
]

Chaînes de date coercées de manière inattendue

Les chaînes de date ISO 8601 (2026-05-09T10:00:00Z) sont intentionnellement conservées comme chaînes dans la sortie JSON — JSON n'a pas de type date natif, donc la coercion produirait soit un objet Date JavaScript qui ne survit pas à la sérialisation, soit un epoch numérique qui perd l'information de fuseau horaire. C'est par conception. Analysez les dates au point d'utilisation avec new Date(value) ou la bibliothèque de dates de votre choix. Ne désactivez pas Inférer les types uniquement pour préserver les dates — cela conserverait également les nombres comme chaînes.

✗ Incorrect
// Expecting a Date object in the output
ts,event
2026-05-09T10:00:00Z,signup
// Output ts is the string "2026-05-09T10:00:00Z", NOT a Date
✓ Correct
// Correct: parse at the point of use in your code
const rows = JSON.parse(output);
const when = new Date(rows[0].ts);
// when is now a Date object

Cas d'utilisation courants

Export de tableur vers import d'API
Collez un CSV exporté depuis Excel, Google Sheets ou Numbers et obtenez un tableau JSON d'objets prêt pour POST vers une API REST, mutation GraphQL ou endpoint d'import en lot. Le cas d'usage le plus courant — les analystes produisent des données de tableur, les ingénieurs ont besoin de JSON typé pour alimenter le backend.
Export Excel vers outillage
Convertissez des exports CSV Excel (y compris les fichiers Excel-EU délimités par point-virgule avec la puce `;`) en JSON pour traitement avec l'outillage JavaScript, scripts jq ou tout système qui lit JSON. L'analyseur gère correctement le retrait du BOM et les fins de ligne CRLF pour que les exports Excel ne cassent pas sur la première ligne.
Journal TSV vers analyse
Les journaux délimités par tabulations issus d'exports BigQuery, déchargements Snowflake, pipelines Vector ou outils Unix (cut, awk) arrivent souvent en .tsv. Choisissez la puce Délimiteur Tab et obtenez un tableau JSON typé prêt pour analyse ad hoc, ingestion de tableau de bord ou transformation à l'étape de pipeline.
Dump CSV de base de données vers ETL
Convertissez la sortie PostgreSQL COPY TO CSV, MySQL SELECT INTO OUTFILE, ou tout dump CSV de base de données en JSON pour chargement dans un magasin NoSQL, alimentation d'un pipeline ETL JavaScript, ou expédition vers BigQuery en JSON ligne par ligne. La détection des grands entiers préserve les ID numériques qui dépassent la plage sûre de JavaScript.
Consommation des résultats de tests Postman/Newman CSV
Les exécutions de tests Postman exportent des rapports CSV de réussite/échec par requête. Convertissez en JSON pour consommation programmatique — alimentez un tableau de bord de statut, pipeline d'alerte ou agrégateur de résultats de tests. Les lignes de formes mixtes (les tests échoués ont une colonne error supplémentaire) sont gérées avec des remplissages vides/null.
Petit CSV vers config JSON rapide
Vous avez un petit CSV de constantes — codes de devise, noms de pays, SKU de produits — et avez besoin d'un tableau JSON pour un fichier de configuration ou une constante JavaScript ? Collez, copiez, collez. Avec Inférer les types activé, les nombres et booléens sont typés correctement ; avec En-tête activé, vous obtenez un tableau d'objets à champs nommés prêts à déposer dans un fichier .json.

Détails techniques

Internes de l'analyseur à machine à états RFC 4180
L'analyseur est une véritable implémentation d'automate fini suivant RFC 4180. Les états incluent UnquotedField, QuotedField, AfterQuote, RowEnd et EndOfInput. L'analyseur gère correctement les champs entre guillemets contenant le délimiteur, les CR/LF intégrés à l'intérieur des champs entre guillemets, les guillemets doubles échappés (doublés, comme "") et les sauts de ligne en fin. Cela produit une sortie qui fait des allers-retours sans perte via le module csv de Python, PostgreSQL COPY, AWS S3 SELECT et tout analyseur conforme. La machine à états est consciente du délimiteur, donc passer de `,` à `;` ou `\t` ne change pas la sémantique de mise entre guillemets — seulement le séparateur de champ.
Algorithme d'inférence de types
Avec Inférer les types activé, chaque cellule passe par un pipeline de détection ordonné. Premièrement, une cellule vide devient JSON null. Deuxièmement, les chaînes littérales true et false deviennent des booléens JSON. Troisièmement, les chaînes à zéro initial (^0[0-9]+$) sont conservées comme chaînes pour préserver la sémantique d'identifiant — la conversion en nombres supprimerait silencieusement les zéros initiaux. Quatrièmement, les littéraux entiers sont testés contre la limite d'entier sûr (-2^53+1 à 2^53-1) ; les valeurs en dehors de cette plage sont conservées comme chaînes pour éviter la perte de précision IEEE 754. Cinquièmement, les chaînes de date ISO 8601 sont détectées par regex et intentionnellement conservées comme chaînes — JSON n'a pas de type date natif. Tout ce qui survit aux cinq garde-fous est converti via Number() (numérique) ou conservé comme chaîne (tout le reste).
Retrait du BOM et gestion de l'encodage
Toute l'entrée est traitée comme UTF-8. Le BOM UTF-8 optionnel (0xEF 0xBB 0xBF) est silencieusement retiré de la première cellule de la première ligne quand présent — cela empêche les octets BOM d'être inclus comme caractère parasite au début du nom de la première colonne (Excel sur Windows émet couramment le BOM, cassant les analyseurs naïfs). Les autres encodages (Windows-1252, ISO-8859-1) ne sont pas auto-détectés ; l'API File du navigateur aurait déjà décodé les octets en UTF-8 au moment où le texte atteint cet outil. Si vous avez une entrée non-UTF-8, convertissez-la d'abord avec iconv ou l'option d'export d'encodage de votre éditeur avant de coller.

Bonnes pratiques

Choisissez le délimiteur explicitement pour les données non-virgule
Ne vous fiez pas à l'auto-détection. Si votre CSV utilise des points-virgules (Excel-EU), tabulations (TSV depuis BigQuery, Snowflake ou outils Unix) ou pipes (champs à forte densité de virgules), cliquez sur la puce Délimiteur correspondante avant de coller. L'analyseur est conscient du délimiteur : changer la puce ré-analyse immédiatement l'entrée. Cela évite le mode d'échec CSV-vers-JSON le plus courant où chaque ligne se tasse dans une seule cellule parce que l'analyseur a utilisé le mauvais séparateur.
Gardez Inférer les types activé pour du JSON typé
Avec Inférer les types activé (par défaut), vous obtenez du JSON typé : nombres en nombres, booléens en booléens, null là où apparaissent les cellules vides. C'est ce que la plupart des consommateurs veulent — API, frontends, code JavaScript. Désactivez Inférer les types uniquement quand vous avez spécifiquement besoin de chaque cellule en chaîne (consommateurs en aval à typage strict, pipelines de validation qui comparent les octets source exacts). Le pipeline de détection a des garde-fous pour les chaînes à zéro initial, les grands entiers et les dates ISO, donc les identifiants et les dates restent sûrs même avec l'inférence activée.
Encadrez les ID de guillemets comme chaînes dans le CSV en amont
Si votre CSV est généré par une base de données ou un pipeline que vous contrôlez, émettez les grands ID numériques (snowflakes Twitter, ID Discord, resourceVersion K8s) comme chaînes CSV entre guillemets ("9007199254740993") pour qu'ils passent proprement par l'inférence de types. L'analyseur les conservera comme chaînes dans tous les cas (la détection grand-entier capture les valeurs au-dessus de 2^53 - 1), mais l'encadrement explicite est le contrat en amont le plus robuste et évite toute ambiguïté sur la précision.
La ligne d'en-tête doit être la première ligne
En-tête activé (par défaut) auto-détecte la première ligne comme noms de colonnes. Si votre CSV a des commentaires, lignes vides ou métadonnées avant l'en-tête, retirez-les avant de coller — l'analyseur ne saute pas les lignes non-données initiales. Pour les CSV sans en-tête (exports bruts, dumps générés par machine), désactivez En-tête et les colonnes seront nommées automatiquement col1, col2, col3 dans l'ordre. N'essayez pas de simuler un en-tête en en préfixant un à un fichier sans en-tête ; soit désactivez En-tête, soit corrigez la source.
Utilisez le mode Stringifier pour les allers-retours CSV → JSON → CSV
Si vous prévoyez de faire un aller-retour des données dans les deux directions (CSV → JSON → CSV), la direction inverse (JSON → CSV) nécessite le mode Stringifier pour que les tableaux ou objets imbriqués survivent sans perte. Le mode Aplatir dans la direction inverse émet des clés pointées (customer.address.city) qui ne peuvent pas être parfaitement reconstruites par l'analyseur CSV. Voyez notre Convertisseur JSON vers CSV pour la référence complète de la direction inverse et les notes de test d'aller-retour.

Questions fréquentes

À quoi sert cet outil ?
Il convertit du CSV en JSON directement dans votre navigateur, avec un support bidirectionnel : cliquez sur Inverser le sens pour reconvertir le JSON en CSV dans le même panneau. Collez du CSV dans la zone de saisie et l'outil produit instantanément la sortie JSON — sans envoi, sans inscription, rien ne quitte votre machine. L'analyseur est conforme à RFC 4180, gère les puces de délimiteur pour la virgule, le point-virgule (Excel-EU), la tabulation (TSV) et le pipe, et l'option Inférer les types convertit les chaînes numériques en nombres, true/false en booléens, et les cellules vides en null. L'outil gère également les ID grand-entier qui perdraient autrement leur précision via JSON.parse, les virgules intégrées dans les champs entre guillemets, les guillemets doubles échappés (doublés), et les données sans en-tête avec colonnes nommées automatiquement (col1, col2, col3).
Mes données sont-elles envoyées quelque part ?
Non. Toute la conversion s'exécute à 100 % côté client dans votre navigateur en JavaScript. Vos données CSV ne sont jamais transmises, jamais stockées sur un serveur, jamais journalisées et jamais analysées. Cela rend l'outil sûr pour les exports de tableur contenant des données personnelles, les dumps CSV de bases de données internes, les enregistrements clients et toute donnée sensible. Vous pouvez le vérifier dans l'onglet Réseau de votre navigateur — coller du CSV ne déclenche aucune requête réseau. L'outil n'utilise aucun cookie pour les données d'entrée et aucune analyse tierce ne capture ce que vous collez.
Comment fonctionne l'inférence de types ?
Avec Inférer les types activé, chaque cellule analysée passe par un petit pipeline de détection avant d'être placée dans le JSON : les chaînes numériques (1, 42, -3.14) deviennent des nombres, true/false deviennent des booléens, les chaînes vides et le littéral null deviennent JSON null, et tout le reste reste en chaîne. Il y a deux garde-fous importants. Premièrement, les chaînes à zéro initial comme 007 ou 0123 sont conservées comme chaînes même si elles semblent numériques — les zéros initiaux indiquent que la valeur est un identifiant (codes postaux, codes téléphoniques, ID de séquence) et la conversion en nombre supprimerait silencieusement les zéros. Deuxièmement, les entiers au-dessus de 2^53 - 1 (9007199254740991) sont également conservés comme chaînes pour éviter la perte de précision IEEE 754. Les chaînes de date ISO (2026-05-09T10:00:00Z) sont intentionnellement laissées comme chaînes — JSON n'a pas de type date natif, donc les coercer produirait un objet Date JavaScript qui ne survit pas à la sérialisation.
Pourquoi les grands entiers sont-ils conservés comme chaînes ?
Le type Number de JavaScript utilise la double précision IEEE 754 et ne peut représenter exactement les entiers que jusqu'à 2^53 - 1 (9007199254740991). Les identifiants du monde réel — ID snowflake Twitter, ID Discord, champs Long MongoDB, resourceVersion K8s — sont des entiers 64 bits qui dépassent cette plage sûre. Si l'analyseur appelait Number() sur ceux-ci, le résultat serait silencieusement arrondi (9007199254740993 devient 9007199254740992). Le pipeline d'inférence de types détecte les valeurs au-delà de la limite d'entier sûr et les conserve à la place comme chaînes, pour que les chiffres survivent intacts. Une bannière d'avertissement apparaît sous la sortie listant les champs affectés. Pour reconvertir avec précision dans le code, utilisez BigInt("9007199254740993") sur la valeur de chaîne JSON.
Mon CSV utilise des points-virgules — comment l'analyser ?
Les locales européennes d'Excel (Allemagne, France, Espagne, Italie, etc.) émettent des CSV délimités par point-virgule parce que la virgule est réservée au séparateur décimal. Cliquez sur la puce `;` sur la ligne Délimiteur (ou ouvrez le panneau Options complet et choisissez `;`) et l'analyseur passe immédiatement en mode point-virgule. Les valeurs numériques avec décimales à virgule (1234,56) à l'intérieur de tels fichiers sont conservées comme chaînes par l'inférence de types parce que la notation décimale européenne est spécifique à la locale — convertissez-les dans le code si vous avez besoin de valeurs numériques. L'analyseur applique toujours les règles de mise entre guillemets RFC 4180 avec le nouveau délimiteur, donc les champs entre guillemets contenant des points-virgules sont gérés correctement.
Gère-t-il TSV (délimité par tabulation) ?
Oui. Cliquez sur la puce Tab sur la ligne Délimiteur et l'analyseur découpe sur les caractères de tabulation au lieu des virgules. TSV est le format le plus propre pour le partage de CSV entre locales parce que la tabulation a peu de chances d'apparaître dans les champs textuels, éliminant la plupart des cas limites de mise entre guillemets. C'est la sortie par défaut des outils Unix (cut, awk), des entrepôts de données (BigQuery, Snowflake), et est bien pris en charge par Excel dans n'importe quelle locale. Collez le contenu de votre fichier .tsv ou .tab directement — le reste de l'analyseur (noms automatiques d'en-tête, inférence de types, détection des grands entiers) fonctionne de manière identique.
Que faire si mon CSV n'a pas de ligne d'en-tête ?
Désactivez En-tête dans le panneau Options. L'analyseur traitera la première ligne comme données au lieu de noms de colonnes et générera automatiquement les clés : col1, col2, col3, … une par colonne. Le JSON de sortie est un tableau d'objets avec ces clés synthétiques. C'est utile pour les exports bruts de bases de données qui omettent l'en-tête, les fichiers plats à format fixe et les CSV générés par machine. Si vous voulez des noms de clé différents, convertissez d'abord avec les noms automatiques puis renommez les clés dans votre pipeline en aval (jq, JavaScript map, etc.). L'outil n'infère pas les clés à partir d'heuristiques de données — En-tête désactivé produit toujours col1, col2, col3.
Peut-il gérer les champs entre guillemets avec virgules intégrées ?
Oui. L'analyseur est une véritable machine à états RFC 4180 : quand il voit un guillemet double d'ouverture, il bascule à l'état QuotedField et traite tout jusqu'au prochain guillemet double non échappé comme un seul champ, y compris les délimiteurs et les fins de ligne intégrées (CR/LF). Les guillemets doubles échappés (doublés, comme "") sont correctement réduits à un seul guillemet. Cela signifie que `"Smith, Jr."` s'analyse comme un seul champ contenant `Smith, Jr.`, et `"He said ""hi"""` s'analyse comme `He said "hi"`. Les analyseurs naïfs par découpage sur la virgule échouent sur ces données du monde réel ; cet outil non.
Pourquoi mes dates sont-elles conservées comme chaînes ?
Par conception. JSON n'a pas de type date natif — seulement des chaînes, nombres, booléens, null, tableaux et objets. Les chaînes de date ISO 8601 (2026-05-09T10:00:00Z) sont conservées verbatim comme chaînes dans la sortie JSON, ce qui est la représentation correcte et sans perte. Si l'analyseur les coerçait en objets Date JavaScript, sérialiser le JSON résultant produirait une sortie différente (un objet sans représentation utile pour l'aller-retour, ou un horodatage numérique). Conservez les dates comme chaînes dans le JSON et analysez-les au point d'utilisation avec new Date(value) ou la bibliothèque de dates de votre choix. Cela correspond au comportement de chaque pipeline majeur JSON-depuis-CSV : Pandas, jq et les modules csv + json de Python.
Que se passe-t-il si les lignes ont des longueurs différentes ?
Les lignes de formes mixtes (certaines avec plus ou moins de colonnes que l'en-tête) sont remplies pour correspondre à la longueur de l'en-tête. Les cellules supplémentaires au-delà du compte d'en-tête sont supprimées, et les cellules manquantes sont définies comme chaîne vide (ou null quand Inférer les types est activé et que l'analyseur voit une valeur vide). Un avertissement Notes de schéma apparaît sous la sortie pour que vous sachiez que les lignes ont été normalisées. C'est généralement bien pour les outils en aval qui unionent les clés, mais vérifiez la sortie si votre consommateur attend une cohérence stricte de forme de ligne. La cause la plus courante est des virgules en fin dans certaines lignes ou des champs entre guillemets avec fins de ligne intégrées mal comptés par les exporteurs en amont.
Quelle taille de fichier puis-je coller ?
Au-dessus de 100 000 caractères ou 2 000 lignes, la conversion en direct passe automatiquement en mode manuel : un bouton Convertir apparaît dans une bannière d'info et la conversion ne s'exécute qu'au clic. Cela empêche le thread principal du navigateur de se bloquer à chaque frappe pendant une analyse lourde. Pour une sortie supérieure à 5 Mo ou 50 000 lignes, l'outil tronque l'aperçu JSON à l'écran aux 500 premières lignes et affiche une bannière Affichage des 500 premières sur N lignes — mais le bouton Télécharger produit toujours le fichier complet avec toutes les lignes incluses. La limite supérieure stricte est de 10 Mo en entrée ; au-delà, l'outil affiche une erreur et vous demande de réduire l'entrée.
Puis-je faire un aller-retour JSON → CSV → JSON ?
Oui, lorsque le JSON est plat (sans objets ni tableaux imbriqués). Pour les données imbriquées, la direction inverse (JSON → CSV) nécessite le mode Stringifier pour conserver les tableaux et objets en JSON dans une seule cellule — qui revient ensuite sans perte via ce convertisseur CSV → JSON quand Inférer les types est activé. Cliquez sur Inverser le sens en haut du panneau pour basculer en mode JSON-vers-CSV et vérifier l'aller-retour. Le mode Aplatir dans la direction inverse est à sens unique : il émet des clés pointées (customer.address.city) qui ne peuvent pas être parfaitement reconstruites depuis CSV. Voyez notre Convertisseur JSON vers CSV pour la direction inverse avec un support Stringifier complet.