TK TaskKit
Outils dev

Formateur JSON

Formate, minifie, valide, répare et trie du JSON. Requêtes JSONPath, édition d'arbre en ligne, export CSV et permaliens partageables — tout dans le navigateur.

Entrée
Résultat
Colle du JSON ou dépose un fichier .json.
Formater sur n'importe quelle page (bookmarklet)

Glisse ce bouton dans ta barre de favoris. Sur n'importe quelle page, clique pour envoyer la sélection (ou le texte de la page) à TaskKit pour formatage. Lien de même origine — pas de trafic tiers.

Formater le JSON

Les entrées restent sur cet appareil. Chaque outil dev de TaskKit tourne entièrement dans ton navigateur. Tokens, payloads et texte collé ne sont pas transmis aux serveurs de TaskKit ni à des tiers.

Ce que fait cet outil

Un formateur JSON qui pretty-printe, minifie, valide, répare et interroge du JSON dans ton navigateur. Il pointe la ligne et la colonne exactes de toute erreur de syntaxe, supporte le drag-and-drop pour les fichiers, retient ta dernière entrée à travers les rechargements de page, et rend des documents de plusieurs mégaoctets sans figer l'onglet. Tout tourne en local — pas d'aller-retour serveur, pas d'upload.

Au-delà du formatage, l'outil propose des requêtes JSONPath pour extraire des valeurs d'un document, une vue arbre interactive avec édition en ligne, sort-keys pour des diffs stables, une passe de « Repair » pour le JSON-avec-virgules-finales-et-commentaires que ton fichier de config contient en vrai, l'export CSV pour les tableaux d'objets, et un permalien qui encode ton entrée dans l'URL pour que tu puisses partager une vue exacte avec un coéquipier.

Quand l'utiliser

  • Lire le corps d'une réponse d'API qui revient en une seule ligne minifiée.
  • Nettoyer un fichier de config avant de le commit dans un repo.
  • Confirmer qu'un payload que tu vas POSTer est bien du JSON valide.
  • Extraire une valeur précise d'un document profondément imbriqué avec une expression JSONPath comme $.users[?(@.role=='admin')].email.
  • Exporter un tableau d'enregistrements en CSV pour un tableur.
  • Partager un payload problématique avec un coéquipier via un permalien, sans coller le JSON dans Slack.
  • Differ deux documents JSON (sort keys sur les deux, puis lance le Comparateur sur la sortie formatée).

Comment ça marche

Le parser strict est le JSON.parse intégré du navigateur, ce qui veut dire la conformité au RFC 8259 : pas de virgule finale, pas de commentaires, pas de clés sans guillemets, pas de strings entre apostrophes. Quand le parse échoue, on remappe la position du message d'erreur natif vers une ligne et une colonne pour que tu n'aies pas à compter les accolades à la main. Le pretty-print utilise JSON.stringify(value, null, 2) et la minification utilise JSON.stringify(value) — les mêmes primitives que ton runtime.

La passe de Repair est volontairement séparée : elle retire les commentaires de ligne et de bloc, retire les virgules finales et normalise les guillemets typographiques en guillemets droits, puis lance le parser strict sur le résultat. Elle n'essaie pas de deviner les clés sans guillemets ni d'inventer des crochets manquants — si un document est structurellement cassé, tu dois le savoir.

Sort keys parcourt l'arbre récursivement et ré-émet chaque objet avec ses clés en ordre lexicographique. Les tableaux gardent leur ordre. C'est l'astuce pour obtenir un diff stable entre deux réponses d'API qui ne diffèrent que par l'ordre des clés.

Les requêtes JSONPath sont évaluées contre le document parsé. Les valeurs correspondantes sont mises en évidence dans la vue arbre et listées dans le panneau de résultats. Les expressions de filtre (?()), wildcards (*), descente récursive (..) et tranches de tableau ([start:end]) sont toutes supportées.

L'édition d'arbre te laisse cliquer sur une valeur pour la changer sur place. Les éditions sont appliquées à la structure parsée et re-sérialisées dans le textarea, donc la sortie formatée et l'arbre ne divergent jamais. L'état déplié/replié est préservé entre les re-renders pour que tu ne perdes pas ta place quand tu sauvegardes une édition.

L'export CSV aplatit un tableau d'objets en une ligne d'en-têtes plus des lignes de valeurs. Les champs imbriqués sont accessibles via dot-paths. Les strings contenant virgules, guillemets ou newlines sont échappées selon le RFC 4180.

Les permaliens encodent l'entrée dans le fragment de l'URL avec base64 + compression style LZ, donc le JSON lui-même ne touche jamais un serveur. Le fragment tient confortablement dans la barre d'adresse pour des payloads typiques (quelques Ko) ; les énormes documents restent locaux et l'option de permalien se grise.

Notes

Pourquoi une copie de réponse d'API échoue-t-elle au parse ? Les navigateurs et terminaux collent parfois des guillemets typographiques (" et ") au lieu de droits ("). Le JSON exige des guillemets droits. Le parser strict pose l'indicateur d'erreur sur le premier guillemet typographique, ou la passe Repair les normalise pour toi.

Les gros fichiers sont-ils supportés ? Oui. Le parser gère des documents de plusieurs mégaoctets et la vue arbre virtualise le rendu, donc même un tableau de 50 Mo reste scrollable. Au-delà, la thread principale du navigateur peut figer brièvement sur l'étape de parse elle-même ; à cette échelle, préfère un parser de stream comme stream-json en Node.

Pourquoi le résultat JSONPath est-il vide ? Les expressions JSONPath sont sensibles à la casse et doivent commencer par $ pour la racine. Les expressions de filtre ont besoin d'un @ en tête pour le nœud courant — $.users[?(@.role=='admin')] et non $.users[?(role=='admin')].

Le permalien expose-t-il mes données ? Non. Le payload encodé est dans le fragment de l'URL (la partie après #), que les navigateurs n'envoient pas aux serveurs. Si tu partages le permalien, le navigateur du destinataire le décode en local ; TaskKit ne le voit jamais.

Cet outil voit-il mes données ? Non. Parsing, formatage, évaluation JSONPath, repair et export CSV se passent tous dans ton onglet. Pas d'étape d'upload, pas d'analytics sur le contenu, et pas d'aperçu qui envoie du texte à un serveur.

Outils liés