Format, explore and convert JSON safely.
Validez, explorez et convertissez du JSON dans le navigateur : position exacte de l'erreur, arborescence pliable qui tient sur de gros fichiers, requêtes JSONPath et export vers CSV, XML, YAML, JSON Schema ou TypeScript.
Collez ou déposez du JSON à gauche pour commencer.
Comment ça marche
Apportez le JSON
Collez-le, déposez un fichier ou laissez un autre outil vous le transmettre. Rien n'est envoyé, et rien de lourd ne démarre avant votre demande.
Lisez le verdict
Valide, ou la ligne et la colonne exactes qui coincent, plus les clés en double et les nombres que JavaScript ne peut pas représenter.
Explorez-le
Repliez l'arborescence, filtrez par clé ou par valeur, ou lancez une expression JSONPath sur tout le document.
Emportez-le
CSV, XML, YAML, JSON Lines, un JSON Schema, des types TypeScript ou Go, ou envoyez-le directement à un autre outil.
Un vrai analyseur, pas JSON.parse
Les erreurs arrivent avec une ligne, une colonne et la rangée surlignée dans la marge, au lieu d'un décalage de caractères qu'il faut compter à la main.
Les identifiants 64 bits survivent
Les longs identifiants numériques sont réécrits chiffre par chiffre. Tout formateur bâti sur JSON.parse les arrondit en silence au double le plus proche.
Réparation en un clic
Commentaires, virgules superflues, apostrophes, clés sans guillemets, True/False/None de Python et une marque BOM égarée deviennent du JSON strict.
Requêtes JSONPath
Jokers, descente récursive, tranches et filtres comme [?(@.prix > 10)], évalués à la main : rien de ce que vous tapez n'est jamais exécuté.
Des types issus de vraies données
JSON Schema, interfaces TypeScript ou structures Go, déduits de tous les enregistrements, si bien qu'un champ parfois absent ressort en optionnel.
Un aplatissement honnête
Vous choisissez le séparateur de chemin et le sort des tableaux imbriqués. Les objets vides gardent leur colonne au lieu de disparaître de l'export.
Comparaison structurelle
Deux documents comparés chemin par chemin : un ordre de clés différent ne se transforme pas en mille changements.
Les gros fichiers restent utilisables
La validation part dans un web worker, l'arborescence ne monte que les lignes visibles et l'historique garde les caractères modifiés, pas une copie du document.
Format, explore and convert JSON safely.
Une réponse d'API transporte des jetons, des données clients et des identifiants internes. JSONFlow n'envoie rien nulle part : l'analyseur, l'arborescence, les requêtes et les exports tournent dans cet onglet, si bien que coller ici une réponse de production reste aussi privé que l'ouvrir dans votre éditeur.
Tout tourne dans cet onglet
L'analyseur, l'arborescence pliable, le moteur JSONPath et chaque export sont du JavaScript ordinaire exécuté sur votre appareil. Aucune étape d'envoi, aucun serveur, aucune requête transportant vos données : coupez la connexion une fois la page chargée et l'outil continue de fonctionner.
L'établi JSON complet pour les développeurs.
Trouver la virgule qui casse un fichier de configuration, transformer une réponse d'API en tableur, générer l'interface TypeScript d'un point d'accès que personne n'a documenté, vérifier si deux versions d'une même charge utile diffèrent vraiment, et ouvrir des journaux où le JSON est arrivé emballé dans une chaîne entre guillemets.
Une charge utile JSON est rarement anonyme : elle contient des jetons d'accès, des adresses e-mail, des numéros de commande et des points d'accès internes. La coller dans un formateur hébergé, c'est tout remettre au serveur de quelqu'un d'autre. Ici, elle ne quitte pas l'onglet : il n'y a rien à journaliser, à mettre en cache ou à fuiter.
Questions fréquentes
QMon JSON est-il envoyé à un serveur ?+
Non. L'analyse, la validation, l'arborescence, les requêtes et tous les exports s'exécutent dans cet onglet du navigateur. Vous pouvez couper le réseau une fois la page chargée : tout continue de fonctionner.
QJusqu'à quelle taille de fichier ça tient vraiment ?+
Sur un portable ordinaire, un document de 1,5 Mo comptant 180 000 nœuds s'analyse en bien moins d'un dixième de seconde, et des fichiers de plusieurs dizaines de mégaoctets s'ouvrent encore : la validation part dans un web worker et l'arborescence ne dessine que les lignes visibles. Ce qui vous limite, c'est la mémoire, pas l'outil : au-delà d'environ 100 Mo, un onglet de navigateur peine quel que soit le programme. Tout ce qui dépasse 2 Mo est retenu derrière un bouton au lieu d'être chargé automatiquement, si bien qu'un gros fichier ne fige jamais la page à son arrivée.
QPourquoi mes longs identifiants changent-ils dans les autres formateurs ?+
JSON.parse convertit chaque nombre en flottant 64 bits, incapable de représenter exactement les entiers au-delà de 2^53 : un identifiant Twitter, Discord ou Snowflake perd ses derniers chiffres. JSONFlow conserve les chiffres d'origine du texte source et vous avertit dès qu'un nombre entre dans cette plage.
QMon fichier contient des commentaires et des virgules superflues. Est-ce un problème ?+
Non. Quand l'analyse stricte échoue, une passe tolérante démarre automatiquement et, si elle réussit, un bouton Réparer apparaît. Il gère les commentaires, les virgules superflues, les apostrophes, les clés sans guillemets, True/False/None de Python, NaN et Infinity, et réécrit le document en JSON strict.
QComment fonctionne l'aplatissement de JSON vers CSV ?+
Chaque élément du tableau de premier niveau devient une ligne, et les clés imbriquées deviennent des colonnes pointées du type user.address.city. Vous choisissez le séparateur et le sort des tableaux imbriqués : une colonne chacun, du JSON tel quel, ou un regroupement. Dans l'autre sens, les en-têtes sont pris au pied de la lettre : une colonne first_name reste first_name, sauf si vous demandez explicitement l'imbrication.
QQu'est-ce que je peux écrire dans la barre de requête ?+
Un sous-ensemble de JSONPath : $.users[0].name, des jokers avec [*], la descente récursive avec .., des tranches comme [0:5], des index négatifs et des filtres du type [?(@.price > 10)] ou [?(@.name =~ ^a)]. Les expressions sont interprétées à la main, jamais évaluées comme du code.