Une conversion CSV et JSON dans le navigateur peut garder le contenu sur votre appareil lorsque la page lit, analyse, transforme et télécharge tout localement. Cette conception réduit le transfert de données. Elle ne rend pas automatiquement sûre chaque page, extension, machine ou entrée.
Réponse rapide : utilisez un convertisseur qui indique clairement le traitement local dans le navigateur. Déconnectez le réseau pour un travail très sensible et non essentiel lorsque l’application fonctionne hors ligne. Inspectez les délimiteurs, en-têtes, encodage, types, formules et nombres de lignes. Validez la sortie JSON avant de supprimer le fichier source.
Cette page explique les différences entre CSV et JSON, le sens possible de « privé dans le navigateur » et la validation d’une conversion. Elle accompagne le convertisseur CSV vers JSON, les outils JSON et les outils CSV et XML.
Peut-on convertir un CSV en JSON sans téléverser un fichier ?
Oui. Les navigateurs modernes permettent à une page de lire un fichier choisi par l’utilisateur. JavaScript peut analyser le fichier en mémoire et créer un téléchargement sans envoyer le contenu à un serveur applicatif.
La W3C File API définit l’accès du navigateur aux fichiers sélectionnés et aux données binaires. Une conversion locale peut utiliser un champ fichier, FileReader, Blob, des URL d’objet et une action de téléchargement. Le navigateur doit toutefois charger le code de l’application, sauf si la page fonctionne déjà hors ligne.
Réponse directe : « s’exécute dans votre navigateur » décrit le lieu de la transformation principale. Cela ne prouve pas qu’aucun code n’envoie de données. Vérifiez la déclaration, le réseau, les contrôles du code, les extensions et la politique de l’appareil lorsque les données sont sensibles.
Un outil de navigateur peut encore envoyer des mesures, des détails d’erreur ou le contenu du fichier si son code le fait. Une dépendance compromise peut aussi modifier le comportement. Les extensions peuvent avoir un accès étendu. Les appareils administrés, antivirus, dossiers synchronisés, gestionnaires de presse-papiers et sauvegardes créent d’autres chemins de données.
Pour des données ordinaires, la conversion locale peut améliorer fortement la confidentialité en supprimant un téléversement habituel. Pour des données réglementées ou secrètes, suivez le processus approuvé de l’organisation.
Quelle est la différence entre CSV et JSON ?
CSV représente des lignes tabulaires avec des champs et des délimiteurs. JSON représente des objets, tableaux, chaînes, nombres, booléens et null. La conversion exige des décisions, car les formats ne portent pas la même structure ni les mêmes types.
| Préoccupation | CSV | JSON | Décision de conversion |
|---|---|---|---|
| Structure principale | Lignes et champs | Objets et tableaux imbriqués | Choisir un objet par ligne ou un autre schéma |
| Noms de champs | Souvent la première ligne | Noms des membres d’objet | Décider si la première ligne est un en-tête |
| Types | Généralement du texte à l’analyse | Chaînes, nombres, booléens, null |
Conserver le texte ou inférer les types |
| Imbrication | Pas de modèle universel | Imbrication native | Aplatir ou sérialiser les valeurs imbriquées |
| Données absentes | Champ vide ou colonne absente | Membre absent, chaîne vide ou null |
Définir une politique |
| Délimiteur | Virgule, tabulation, point-virgule ou autre | La syntaxe utilise la ponctuation | Détecter ou sélectionner le délimiteur |
| Encodage | Accord externe nécessaire | L’échange utilise généralement UTF-8 | Décoder correctement la source |
| Ordre des enregistrements | Ordre des lignes | Ordre du tableau conservé | Conserver ou trier intentionnellement |
RFC 4180 documente un format CSV courant et son type MIME. Il décrit les enregistrements séparés par des virgules, les en-têtes facultatifs, les champs entre guillemets et les guillemets doublés. Les fichiers réels peuvent utiliser des tabulations, points-virgules, fins de ligne différentes ou des conventions propres à l’application.
RFC 8259 définit le format d’échange JSON. Un texte JSON contient une valeur sérialisée. Les objets utilisent des noms et valeurs. Les tableaux utilisent des valeurs ordonnées. La syntaxe JSON n’autorise ni commentaires, ni virgules finales, ni NaN, ni Infinity.
Que peut perdre la conversion ?
La conversion peut perdre l’intention de type, les zéros initiaux, la précision, les en-têtes dupliqués, la structure imbriquée, le sens des formules et le format original. Une analyse réussie ne prouve pas que le résultat conserve le sens métier.
Un champ CSV 00123 peut être un code postal, un identifiant ou un nombre. Le convertir en nombre JSON 123 supprime les zéros. 1E10 peut être un identifiant tout en ressemblant à une notation scientifique. Un long numéro de compte peut dépasser la plage exacte du consommateur.
Les dates présentent un risque similaire. 01/02/03 ne désigne pas une date unique dans toutes les régions. Un convertisseur ne doit pas deviner en silence. Conservez les valeurs ambiguës comme chaînes lorsque le schéma ne définit pas le format.
Les valeurs vides exigent aussi une politique. Un champ CSV vide peut devenir "", null ou un membre d’objet absent. Ces sorties ne sont pas équivalentes. Une chaîne vide peut être une valeur vide connue, null peut signaler aucune valeur, et l’absence peut signifier inconnu ou non applicable.
Les en-têtes dupliqués rendent le mappage vers des objets JSON incomplet. Si une ligne contient deux colonnes status, un objet JSON ne peut pas conserver les deux membres de manière fiable. Renommez les doublons, refusez le fichier ou utilisez des tableaux avec une liste d’en-têtes séparée.
Le convertisseur doit-il inférer les types ?
L’inférence rend le JSON pratique, mais ajoute un risque. La chaîne true peut être une réponse ou un libellé. 0007 peut être un identifiant. Une case vide peut être une absence ou une valeur vide volontaire.
Utilisez un typage guidé par schéma lorsque possible. Définissez chaque colonne comme chaîne, entier, décimal, booléen, date, horodatage ou valeur nullable. Refusez les entrées invalides plutôt que de deviner. Conservez le texte original pour l’audit lorsqu’une transformation est importante.
Sans schéma, la conservation des chaînes est le choix le plus sûr. Elle garde les caractères et les zéros initiaux. Un processus validé peut convertir ensuite des champs sélectionnés.
Pour les valeurs numériques, définissez la précision décimale. Le flottant JavaScript ne représente pas exactement chaque fraction décimale ou grand entier. Les données financières et les identifiants exigent souvent des décimaux, chaînes entières ou types de précision arbitraire.
Le modèle de données tabulaires W3C décrit une manière plus riche d’annoter des tableaux avec des métadonnées et des types. Un convertisseur léger ne gère pas forcément les métadonnées CSVW, mais le modèle montre l’importance du schéma.
Comment fonctionne l’encodage des caractères ?
JSON échangé entre systèmes utilise Unicode et généralement UTF-8. Les CSV peuvent arriver en UTF-8, UTF-16, page de code Windows ou autre encodage ancien. Lire les octets avec le mauvais décodeur produit des caractères de remplacement ou du texte altéré.
La WHATWG Encoding Standard définit les étiquettes et le décodage du navigateur. Elle normalise les encodages anciens utilisés sur le Web et décrit les modes d’erreur et le remplacement.
Utilisez UTF-8 pour les nouveaux exports. RFC 3629 définit UTF-8 comme format de transformation Unicode. Un marqueur d’ordre des octets peut apparaître dans un CSV UTF-8, même si UTF-8 ne l’exige pas. Certains analyseurs le traitent comme une partie du premier en-tête.
Avant la conversion, inspectez les accents, écritures non latines, emoji, devises et ponctuation typographique. Après la conversion, comparez des valeurs représentatives. Un nombre de lignes identique ne détecte pas une corruption de caractères.
Lorsque l’encodage source est inconnu, demandez au producteur ou utilisez une détection contrôlée. La détection automatique est probabiliste. Elle peut produire un résultat plausible mais faux sur un fichier court ou surtout ASCII.
Comment fonctionnent les délimiteurs et les guillemets ?
Une virgule dans un champ exige généralement des guillemets doubles. Un guillemet dans un champ cité est souvent échappé par un second guillemet. Un champ cité peut contenir un saut de ligne. Séparer chaque ligne sur les virgules échoue dans ces cas valides.
Par exemple, cet enregistrement contient trois champs malgré sa virgule interne :
42,"Mumbai, Maharashtra","Approved"
Cet enregistrement contient un guillemet dans le deuxième champ :
43,"The value is ""ready""","Approved"
Utilisez un analyseur CSV testé avec délimiteur, guillemet, échappement, en-tête et fin de ligne configurables. N’utilisez pas une expression régulière simple pour du CSV arbitraire.
Certaines régions utilisent le point-virgule, car la virgule sert aux décimales. Les données séparées par tabulation peuvent utiliser l’extension .tsv. Un convertisseur peut proposer des candidats, mais doit afficher le délimiteur choisi et permettre sa correction.
Qu’est-ce que l’injection de formule CSV ?
Les tableurs peuvent interpréter comme formules des cellules qui commencent par certains caractères. Si un attaquant contrôle un champ, l’ouverture du CSV dans un tableur peut déclencher des formules ou des actions externes selon l’application et les choix de l’utilisateur.
Les conseils OWASP CSV Injection expliquent que des caractères comme =, +, - ou @ peuvent déclencher une interprétation. Les délimiteurs et retours peuvent aussi permettre aux données de commencer une nouvelle cellule.
Une conversion CSV vers JSON n’exécute pas les formules de tableur. Toutefois, une conversion JSON vers CSV ultérieure peut recréer des cellules dangereuses. Traitez le texte ressemblant à une formule comme non fiable et appliquez une politique adaptée au tableur cible.
Préfixer une apostrophe peut empêcher l’interprétation dans certaines applications, mais modifie le texte stocké. Citer un champ ne suffit pas toujours, car le tableur peut interpréter le contenu après l’analyse CSV. Suivez les consignes de sécurité actuelles du système cible.
N’ouvrez pas un CSV inconnu dans un tableur pour l’inspecter. Utilisez un analyseur orienté texte et un aperçu. Restreignez les liens externes et le contenu actif selon la politique de l’organisation.
Que nécessite un traitement privé dans le navigateur ?
Un flux local fiable a des limites claires. La conversion doit lire le fichier localement, éviter les téléversements, créer la sortie localement et déclarer toute télémétrie. L’application doit utiliser une politique de sécurité restrictive et des dépendances maintenues.
L’utilisateur doit également :
- utiliser un appareil fiable et un navigateur compatible ;
- supprimer les extensions qui ont un accès inutile aux pages ;
- confirmer l’origine du site et la sécurité du transport ;
- éviter les machines publiques ou partagées pour les données sensibles ;
- maintenir le système et le navigateur à jour ;
- stocker les résultats téléchargés dans un emplacement approuvé ;
- supprimer les copies temporaires selon la politique.
La déconnexion du réseau apporte une confiance supplémentaire seulement si la page possède déjà tout son code. Elle ne protège pas contre un code malveillant déjà chargé, les extensions, les captures, les dossiers synchronisés ou les logiciels locaux.
Les outils de développement peuvent montrer des requêtes pendant un test, mais une observation ne constitue pas une garantie formelle. Les requêtes peuvent dépendre du type de fichier, des erreurs, du temps, de la configuration ou d’une mise à jour. Une revue indépendante du code, des builds reproductibles, des contrôles de contenu et une approbation organisationnelle fournissent de meilleures preuves.
Flux sûr de CSV vers JSON
- Copiez le fichier source dans un emplacement de travail protégé.
- Notez le nom, la taille et, si possible, un condensat fiable.
- Confirmez l’encodage et le délimiteur attendus.
- Décidez si la première ligne contient des en-têtes.
- Examinez les en-têtes dupliqués, vides ou inattendus.
- Sélectionnez une politique de chaînes ou de schéma.
- Prévisualisez des lignes représentatives avant la conversion complète.
- Convertissez avec l’outil CSV vers JSON.
- Validez la syntaxe JSON produite.
- Comparez le nombre de lignes et les champs importants.
- Stockez le résultat dans l’emplacement approuvé.
- Conservez ou supprimez la source selon les règles de conservation.
L’aperçu doit inclure les premières et dernières lignes, les enregistrements avec guillemets, les champs multilignes, les caractères non ASCII, les valeurs vides et les valeurs très longues. Sur de gros volumes, l’échantillonnage aide, mais les cas limites ciblés donnent de meilleures preuves.
Comment valider le résultat JSON ?
Commencez par la syntaxe. Le validateur JSON peut trouver un document mal formé. La validation syntaxique confirme la grammaire JSON. Elle ne confirme pas les champs, types, intervalles ou relations attendus.
Validez ensuite la structure. Un schéma JSON ou applicatif peut exiger les noms, types, formats, limites et niveaux. Vérifiez que chaque ligne devient un élément de tableau et qu’aucun enregistrement ne disparaît après une erreur.
Utilisez le formateur JSON pour lire la sortie. Le formatage change les espaces, pas le sens des données. Une indentation agréable ne prouve pas la correction.
Utilisez le comparateur JSON avec un exemple fiable. Décidez si l’ordre des membres, l’ordre des tableaux, les formes numériques et les membres absents comptent.
| Contrôle | Preuve suggérée |
|---|---|
| Conservation des lignes | Le nombre de lignes source égale la longueur du tableau JSON |
| Mappage des en-têtes | Les clés attendues existent et les doublons sont résolus |
| Intégrité des caractères | Les valeurs Unicode représentatives correspondent |
| Conservation des types | Les identifiants gardent les zéros et les chiffres longs |
| Valeurs absentes | Vide, null et absence suivent la politique |
| Champs multilignes | Les sauts restent dans une seule valeur |
| Texte de type formule | La politique enregistre les cellules potentiellement actives |
| Intégrité du fichier | Un condensat optionnel identifie la source contrôlée |
Pour les migrations importantes, ajoutez des assertions automatisées. Vérifiez les comptes, clés obligatoires, identifiants uniques, totaux, dates extrêmes et enregistrements connus. Réconciliez les agrégats avec le système source.
Flux sûr de JSON vers CSV
La conversion inverse exige une forme tabulaire. Un tableau d’objets plats se mappe naturellement vers des lignes. Les objets et tableaux imbriqués exigent une politique d’aplatissement.
Vous pouvez joindre des chemins avec un point, comme address.city, sérialiser les valeurs imbriquées en texte JSON ou créer plusieurs fichiers CSV liés. Chaque choix influence la réimportation et l’édition humaine.
Choisissez un ordre de colonnes stable. Définissez les membres absents. Citez les champs selon les règles CSV choisies. Appliquez la politique d’injection de formule avant l’utilisation dans un tableur. Exportez en UTF-8 et indiquez la présence d’un marqueur d’ordre des octets.
Ne supposez pas que tous les membres apparaissent dans le premier objet. Scannez le schéma autorisé ou tous les enregistrements. Sinon, des champs ultérieurs peuvent disparaître. Pour de gros fichiers, utilisez un schéma afin de traiter les lignes en flux.
Performance et mémoire des gros fichiers
La mémoire du navigateur est limitée. Lire plusieurs gigaoctets, analyser les objets et sérialiser une copie complète peut exiger plusieurs fois la taille source. La page peut devenir inactive ou le processus peut s’arrêter.
Un convertisseur évolutif peut lire par flux ou blocs, analyser les enregistrements progressivement et écrire progressivement. Les champs cités avec retours intégrés rendent les limites de bloc plus complexes. L’analyseur doit conserver son état entre les blocs.
Utilisez un outil de bureau, un processus local révisé ou un flux serveur contrôlé lorsque le fichier dépasse les limites du navigateur. « Sans téléversement » ne signifie pas forcément « dans un navigateur ». Un script local peut aussi garder les données sur l’appareil avec un flux et de meilleurs contrôles d’audit.
Testez les performances avec des fichiers représentatifs non sensibles. Surveillez la mémoire et la taille de sortie. Définissez une taille maximale dans l’interface. N’affirmez jamais que tous les fichiers fonctionnent simplement parce que le sélecteur les accepte.
Erreurs courantes de conversion
Erreur 1 : séparer chaque ligne avec des virgules
Les virgules citées et les champs multilignes cassent cette méthode. Utilisez un analyseur CSV.
Erreur 2 : inférer tous les champs qui ressemblent à des nombres
Les identifiants, codes postaux, références de compte et numéros de téléphone peuvent perdre des zéros ou de la précision. Conservez les chaînes sans schéma.
Erreur 3 : supposer que la première ligne est un en-tête
Certains fichiers n’ont pas d’en-tête. D’autres ont des titres avant le tableau. Prévisualisez et choisissez explicitement la ligne.
Erreur 4 : ignorer les en-têtes dupliqués
Un objet JSON ne conserve pas fiablement deux valeurs sous le même nom. Refusez ou renommez les doublons selon une règle documentée.
Erreur 5 : promettre une confidentialité complète grâce au traitement local
Le traitement local réduit le transfert courant. Il ne sécurise pas un appareil, navigateur, extension, dépendance ou emplacement compromis.
Erreur 6 : valider uniquement la syntaxe JSON
Un JSON valide peut contenir des lignes incorrectes, du texte corrompu, des identifiants altérés ou des types erronés. Validez le schéma métier et rapprochez la source.
Erreur 7 : ouvrir une sortie non fiable dans un tableur
Les champs de type formule peuvent devenir actifs. Appliquez une politique d’export sûre et inspectez l’environnement cible.
Quand éviter un outil en ligne ?
Évitez un outil non approuvé lorsque les données sont réglementées, secrètes, fortement sensibles ou soumises à une politique de résidence. Utilisez un processus local ou administré avec des contrôles connus.
Évitez aussi un outil du navigateur lorsque le fichier dépasse la mémoire disponible, lorsque les fonctions de conversion sont insuffisantes ou lorsque vous devez conserver des journaux d’audit détaillés. Le traitement local peut rester possible avec un outil de bureau ou une commande révisée.
Questions fréquentes
Un convertisseur CSV du navigateur téléverse-t-il mon fichier ?
Pas nécessairement. Vérifiez l’étiquette de traitement, la documentation et le comportement réseau. Le texte « navigateur » indique le lieu principal, pas une garantie universelle.
Le traitement dans le navigateur est-il totalement privé ?
Non. Il réduit un téléversement courant, mais l’appareil, les extensions, la télémétrie, les dépendances, les sauvegardes et le stockage peuvent créer d’autres chemins.
Les nombres CSV doivent-ils devenir des nombres JSON ?
Pas toujours. Les identifiants et codes peuvent exiger des chaînes. Utilisez un schéma et conservez les zéros et la précision nécessaires.
Comment représenter les champs CSV vides ?
Définissez si une valeur vide devient "", null ou un membre absent. Ces choix ont un sens différent pour le système cible.
Un CSV peut-il contenir des retours de ligne dans un champ ?
Oui, un champ cité peut contenir un retour. Utilisez un analyseur CSV complet et ne séparez pas le fichier uniquement par lignes.
Pourquoi ma première clé JSON contient-elle un caractère étrange ?
Un marqueur UTF-8 peut avoir été lu comme partie de l’en-tête. Gérez le marqueur explicitement et vérifiez l’encodage source.
Un JSON formaté est-il plus valide qu’un JSON compact ?
Non. L’indentation change la présentation. Les deux formes peuvent être valides si elles respectent la même grammaire et les mêmes valeurs.
Puis-je convertir un JSON imbriqué en fichier CSV ?
Oui, après avoir choisi une politique d’aplatissement. Les tableaux et objets imbriqués ne disposent pas d’une seule représentation CSV universelle.
Règle finale de confidentialité et validation
Le traitement local réduit un chemin de transfert, mais ne remplace pas une évaluation de sécurité. Le bon flux conserve la source, documente l’encodage et le dialecte, vérifie les types et les formules, valide la structure JSON, rapproche les comptes et conserve les résultats selon la politique.
Utilisez le convertisseur CSV vers JSON avec un petit échantillon non sensible. Inspectez ensuite les cas limites et le résultat complet avant toute utilisation métier.