FAQ utilisation des outils : données, fichiers et export
L’essentiel : Les données sont-elles téléversées, quelle taille de fichier fonctionne, quelque chose est-il stocké localement, pourquoi le chinois devient-il des échappements : dix questions qui explicitent les vraies frontières d'un outil JSON en ligne.

L'essentiel : le parsing, le formatage, le diff et l'interrogation tournent entièrement dans votre navigateur et continuent de fonctionner hors ligne ; videz l'historique localStorage après avoir traité des données sensibles ; et passez aux outils de flux en ligne de commande au-delà de 10 Mo plutôt que de coller le fichier dans le navigateur.
Avant de coller une charge utile sensible dans un outil en ligne, sachez où elle va. Cet article couvre seulement le comportement d'exécution de l'outil, pas la syntaxe.
1. Données et confidentialité
Le formateur JSON en ligne téléverse-t-il mes données vers un serveur ?
Non. Le parsing, le formatage, la minification, le diff et l'interrogation se produisent tous dans le navigateur, et la page n'envoie jamais ce que vous collez à un serveur applicatif.
Vous n'avez pas besoin de lire une déclaration de confidentialité pour savoir si un outil en ligne téléverse des données ; le panneau réseau du navigateur suffit :
- Ouvrez les outils développeur, passez au panneau Network, et activez la persistance des logs ;
- Collez du JSON et cliquez sur « Format » ;
- Surveillez si une nouvelle requête XHR ou fetch apparaît, et si son corps contient votre contenu.
Pour un outil réellement local, cette étape ne montre que des requêtes d'actifs statiques. Inversement, si une seule action de formatage produit POST /api/format
dont le corps est votre texte original, alors les données ont déjà quitté le navigateur quoi que prétende la page.
Chaque outil de ce site est une implémentation purement frontend, et la sortie de build ne contient aucune API serveur. Après être passé hors ligne, un rafraîchissement qui touche le cache fonctionne encore, ce qui est aussi la façon la plus directe de dire si quelque chose est « entièrement local ».
Puis-je l'utiliser hors ligne ?
Oui, à condition que la page ait été chargée une fois.
Les actifs du site sont téléchargés dans le cache du navigateur à la première visite, donc même sans réseau ensuite, le formatage, la minification, la conversion JSON5 et les requêtes JSONPath continuent de fonctionner. Seules les fonctionnalités dépendant du réseau échouent, comme la vérification d'une nouvelle version ou le téléchargement de l'installateur de bureau.
Le test hors ligne est aussi un bon moyen de vérifier que « les données ne partent jamais » : si tout casse dès que vous déconnectez, chaque action parlait à un serveur.
Des données sont-elles stockées localement ? Comment les effacer ?
Oui, mais seulement dans le localStorage du navigateur courant, et seulement l'historique et les réglages d'interface.
- Historique : les 100 dernières entrées traitées par ordre chronologique inverse, utilisées pour rappeler les données précédemment collées ;
- Réglages d'interface : thème, langue, préférences d'indentation, etc. ;
- Non stockés : le fichier lui-même, les enregistrements de téléversement, ou quoi que ce soit portant une identité.
Trois façons de l'effacer, du plus étroit au plus large :
| Méthode | Portée | Quand l'utiliser |
|---|---|---|
| « Effacer l'historique » sur la page d'historique | Supprime seulement l'historique, garde les réglages | Après avoir traité des données sensibles |
Exécuter localStorage.clear() dans les outils développeur |
Toutes les données locales de ce site | Diagnostiquer des réglages anormaux |
| « Effacer les données de navigation » du navigateur pour ce site | Cookies, cache et stockage ensemble | Avant d'utiliser un ordinateur partagé |
Lors du traitement de données de production sur un ordinateur partagé, effacez l'historique en terminant au lieu de simplement fermer l'onglet — le localStorage ne disparaît pas à la fermeture de l'onglet.
Pourquoi les caractères chinois sont-ils devenus \u4e2d\u6587 ?
Parce que la fonctionnalité « escape » convertit les caractères non-ASCII en séquences d'échappement Unicode. C'est un comportement délibéré, pas du mojibake.
\u4e2d est le point de code du caractère 中 (U+4E2D). Les deux formes sont sémantiquement identiques en JSON et se parsent en la même chaîne :
{
"escaped": "\u4e2d\u6587",
"plain": "中文"
}
Quand l'échappement est-il nécessaire ? Pour intégrer du JSON dans un ancien système qui n'accepte que l'ASCII, l'écrire dans un en-tête HTTP, ou l'imbriquer dans une autre chaîne. Quand n'est-il pas nécessaire ? La plupart du transport d'API et du stockage de fichiers n'en ont pas besoin ; stocker directement le chinois en UTF-8 économise des octets — un caractère chinois fait 3 octets, et 6 octets une fois échappé.
Si vous voyez le chinois se transformer en \u4e2d, vérifiez d'abord si vous avez cliqué sur le bouton « Escape » plutôt que de suspecter un encodage cassé.
2. Fichiers et taille
Quelle taille de fichier est prise en charge ?
Il n'y a pas de limite dure côté navigateur ; les vraies limites viennent de trois endroits :
| Étape | Goulot approximatif | Symptôme |
|---|---|---|
| Coller dans une zone de texte | 1 à 5 Mo | La saisie ralentit après le collage, retard du curseur |
JSON.parse |
50 à 100 Mo | Le thread principal bloque pendant des secondes, page non réactive |
| Rendu d'arbre | 10k à 20k nœuds | Frames perdues pendant l'expansion, défilement figé |
Autrement dit, un fichier de dizaines de Mo « peut être parsé » mais n'est « pas utilisable ». Quand il faut réellement traiter de telles données, le bon geste n'est pas de chercher un outil en ligne plus puissant, mais de passer au flux (voir FAQ performance et sécurité).
Règle empirique : en dessous de 2 Mo un outil en ligne reste fluide ; de 2 à 10 Mo signifie accepter un ou deux ralentissements ; au-delà de 10 Mo, préférez un script local.
Le navigateur fige après que j'ai collé. Que faire ?
Ne rafraîchissez pas d'abord — rafraîchir perd le contenu et il faut recoller. Secourez-le dans cet ordre :
- Attendez 10 à 30 secondes. Dans la plupart des cas le thread principal parse ou rend et se rétablira seul ;
- Une fois rétabli, passez immédiatement à la vue « Minify » ou repliez l'arbre pour réduire les nœuds DOM ;
- Copiez le contenu dans un fichier local et passez à la ligne de commande :
# Look at the structure of the first 100 lines only, to avoid loading everything
head -c 200000 data.json | jq . | head -n 100
# Count entries with a streaming tool, without loading them into memory
jq -c '.items[]' data.json | wc -l
La prochaine fois que vous rencontrez un gros fichier, lancez d'abord wc -c pour voir le nombre d'octets, puis décidez si vous le collez dans un navigateur.
Pourquoi le formatage est-il inchangé après le collage ?
Trois causes courantes, par ordre de fréquence :
- L'entrée est déjà minifiée et sans erreur de syntaxe : le formatage n'ajuste que l'indentation, donc si l'original fait vraiment deux lignes, il en fera encore deux après — les retours à la ligne à l'intérieur des chaînes ne sont pas développés ;
- Le contenu n'est pas du JSON : par exemple vous avez collé un littéral d'objet JavaScript (clés sans guillemets, guillemets simples), et le parseur rapporte une erreur au lieu de formater ;
- Vous avez cliqué sur le mauvais bouton : minify et format vont dans des directions opposées, et minify supprime toute l'indentation.
Comment le savoir : regardez le nombre de caractères en haut à droite de la zone de sortie. Après formatage le compte devrait augmenter (indentation et retours à la ligne supplémentaires) ; s'il a diminué, vous avez lancé minify.
3. Entrée et sortie
Comment exporter le résultat vers un fichier ?
Trois façons, par ordre de fiabilité :
| Méthode | Action | Quand l'utiliser |
|---|---|---|
| Bouton de téléchargement | Cliquer sur « Download » pour produire un fichier .json |
Grands résultats à archiver |
| Copie dans le presse-papiers | Cliquer sur « Copier » | Petits résultats que vous recollez dans le code |
| Copie manuelle tout sélectionner | Sélectionner la zone de sortie et faire Ctrl/Cmd + C |
Le repli quand le bouton de copie échoue |
Le fichier téléchargé est encodé UTF-8 sans BOM par défaut. Cela compte : du JSON avec un BOM casse d'emblée dans beaucoup de parseurs (voir la section sur le BOM dans FAQ syntaxe et format).
JSON5 et JSONC sont-ils pris en charge ?
Oui, mais distinguez « parsing » et « sortie ».
- Côté entrée, vous pouvez coller du JSON5 (guillemets simples, clés sans guillemets, commentaires, virgules finales, nombres hexadécimaux) ou du JSONC (commentaires seulement) ;
- Côté sortie, vous pouvez convertir en JSON standard, ou reconvertir du JSON standard en JSON5 pour faciliter l'édition manuelle.
Émettez toujours du JSON standard en franchissant des systèmes. JSON5 est un dialecte pour les humains qui écrivent de la configuration ; un corps de requête avec
Content-Type: application/json qui contient des commentaires ou des virgules finales sera généralement rejeté par le serveur.
4. Environnement et compatibilité
Fonctionne-t-il sur téléphone ?
Oui. L'interface se redistribue en une seule colonne, et le formatage, la minification, le diff et JSONPath sont tous conservés.
Mais traiter de grands fichiers sur téléphone est une mauvaise expérience : le clavier virtuel couvre le contenu, sélectionner du texte est difficile, et le navigateur peut abandonner la page quand vous changez d'application, perdant votre contenu. Acceptable en urgence, mais faites-le sur bureau au quotidien.
Pourquoi le même fichier s'ouvre-t-il dans Chrome mais erre-t-il dans Safari ?
Ce n'est généralement pas une différence de navigateur mais une différence d'encodage. Déboguez dans cet ordre :
- BOM : l'UTF-8 sauvegardé par le Bloc-notes Windows inclut un BOM, que certains parseurs ne tolèrent pas ;
- Fins de ligne : mélanger CRLF et LF n'affecte pas JSON lui-même, mais décale les numéros de ligne d'erreur rapportés, ce qui donne l'impression que « la position de l'erreur est fausse » ;
- Caractères invisibles : le texte copié depuis une page web peut contenir des espaces de largeur nulle (U+200B), invisibles à l'œil mais suffisants pour casser la correspondance des clés.
Une commande voit à travers :
# Look at the hex of the first 16 bytes; a leading EF BB BF means a BOM is present
head -c 16 data.json | xxd
5. Aide-mémoire
| Question | Conclusion |
|---|---|
| Téléverse-t-il des données | Non, tout est traité localement dans le navigateur, et cela fonctionne hors ligne |
| Où sont stockées les données | localStorage, seulement historique et réglages, jamais les fichiers |
| Quelle taille de fichier est raisonnable | Fluide en dessous de 2 Mo ; au-delà de 10 Mo passez à la ligne de commande |
Le chinois est devenu \u |
Vous avez cliqué sur escape ; équivalent mais plus volumineux, et généralement inutile |
| Ça a figé, que faire | Attendre le rétablissement → replier l'arbre → copier dehors et utiliser jq |
| L'export est-il sans BOM | Oui, UTF-8 sans BOM |
| Les commentaires sont-ils pris en charge | JSON5/JSONC côté entrée ; émettez du JSON standard |