JSONFlow · Établi

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.

100 % local : rien n'est envoyéLigne et colonne exactes pour chaque erreurCSV, XML, YAML, Schema et TypeScript
Texte source
Rien n'est encore chargé.

Collez ou déposez du JSON à gauche pour commencer.

Les documents de moins de 256.0 KB se construisent pendant la frappe ; les plus gros attendent Analyser.
Continuez

Comment ça marche

1

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.

2

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.

3

Explorez-le

Repliez l'arborescence, filtrez par clé ou par valeur, ou lancez une expression JSONPath sur tout le document.

4

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.

formateur JSON

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.

À quoi ça sert

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.

Pourquoi le local compte ici

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.

Mots-clés

formateur JSONvalidateur JSONvisualiseur JSONJSON vers CSVJSON vers XMLJSON vers YAMLCSV vers JSONembellisseur JSONJSONPathgénérateur de JSON SchemaJSON vers TypeScriptcomparaison JSONréparation JSONJSON Lines
Fait partie de la suite oLoveTools
oLoveTools

Des utilitaires rapides, soignés et privés pour les designers et les développeurs.

© 2026 oLoveToolsÀ propos

Étape suivante

Convertissez JSON en XML XML to JSON

JSONFlow | Formateur, validateur, visualiseur et convertisseur JSON

Mettez en forme, validez et explorez du JSON avec la position exacte de l'erreur et une arborescence qui tient sur les gros fichiers. Convertissez en CSV, XML, YAML ou JSON Lines, générez un JSON Schema et des types TypeScript, et lancez des requêtes JSONPath, le tout dans votre navigateur.

Questions fréquentes

Mon 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.

Jusqu'à 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.

Pourquoi 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.

Mon 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.

Comment 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.

Qu'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.

Mots-clés

formateur JSON, validateur JSON, visualiseur JSON, JSON vers CSV, JSON vers XML, JSON vers YAML, CSV vers JSON, embellisseur JSON, JSONPath, générateur de JSON Schema, JSON vers TypeScript, comparaison JSON, réparation JSON, JSON Lines