Qu'est-ce que JSONPath et pourquoi ai-je besoin d'un testeur ?
Vous avez un document JSON. Réponse d'API, fichier de config, ligne de log, peu importe. À l'intérieur, il y a une donnée que vous voulez extraire : l'email du troisième utilisateur, tous les prix sous 10 dollars, toutes les URLs d'images imbriquées 4 niveaux plus profond. Écrire une boucle JavaScript pour ça est bien, mais lent et bruyant. JSONPath est le raccourci : un petit langage de requête conçu pour JSON, modelé sur XPath pour XML. Une ligne, vous avez les valeurs.
Ce testeur exécute votre expression en direct à mesure que vous tapez. Collez du JSON à gauche, tapez un JSONPath comme `$.store.book[*].title` à droite, voyez les valeurs correspondantes à droite aussi. Rien ne quitte votre navigateur, le JSON reste sur votre machine, ce qui compte quand vous déboguez une réponse de production avec de vraies données utilisateur dedans.
L'outil fournit l'exemple classique de la librairie de Goessner (le JSON que tous les tutos JSONPath utilisent) pour que le mémento et les chips d'exemple marchent dès le départ. Cliquez un exemple pour le charger, tweakez l'expression, voyez ce qui change. Vous apprendrez la syntaxe plus vite en jouant avec une requête qui marche qu'en lisant la doc.
Comment l'utiliser
- Collez votre JSON dans la textarea de gauche. Cliquez sur Format pour le pretty-print (indentation 4 espaces, rien de trié, juste lisible). Si le JSON est cassé (virgule manquante, crochet non fermé), vous obtenez un badge rouge Invalid JSON au-dessus de l'éditeur : corrigez et le badge disparaît.
- Tapez une expression JSONPath dans l'entrée à droite. Le résultat se met à jour à chaque frappe, pas de bouton run. Commencez par `$` (la racine du document) et descendez avec `.field` ou `[index]`. Les chips d'exemple en dessous sont des points de départ cliquables.
- Le panneau Result affiche les valeurs correspondantes en JSON. Le nombre de matches est en haut à droite, un match vide retourne "no matches" au lieu d'un tableau vide, pour que vous sachiez que votre expression a tourné sans erreur.
- Activez Show paths pour basculer la sortie de valeurs à chemins JSON (comme `$.store.book[0].title`). Utile quand vous voulez savoir où est quelque chose plutôt que ce que c'est.
- Cliquez sur Copy pour mettre le résultat dans le presse-papiers. Cliquez sur Load sample à tout moment pour réinitialiser au document de librairie. Cliquez sur Clear pour vider les deux panneaux.
- Utilisez le mémento en bas : chaque ligne est cliquable, l'exemple se charge dans la zone de requête (et réinitialise le JSON à l'exemple) pour que vous puissiez voir exactement ce que fait chaque opérateur.
Quand c'est utile
Six situations concrètes où JSONPath bat l'écriture d'une boucle custom :
- Déboguer des réponses d'API. Vous frappez un endpoint, la réponse fait 80 Ko de JSON imbriqué, et il vous faut juste les IDs utilisateurs de la deuxième page de résultats. Tapez `$.data.users[*].id` et vous les avez. Pas besoin d'écrire un script, pas besoin d'ouvrir la réponse dans un IDE, pas besoin de copier-coller des fragments.
- Extraire des champs d'un fichier de config. Vous avez un manifeste Kubernetes de 2000 lignes ou un Helm values.yaml (converti en JSON) et vous voulez chaque image conteneur utilisée dans le cluster. `$..spec.containers[*].image` et terminé. La descente récursive (`..`) se moque de la profondeur des conteneurs.
- Filtrer par condition. Vous avez un catalogue produit avec 400 articles et il vous faut ceux à moins de 10 dollars. `$.products[?(@.price < 10)]` les retourne tous, pas de SQL, pas d'Excel, juste collez et tapez. Combinez avec `&&` pour plusieurs conditions : `[?(@.price < 10 && @.inStock)]`.
- Apprendre la syntaxe avant de l'utiliser dans du code. Beaucoup de bibliothèques prennent JSONPath en entrée : alternatives à jq, scripts de test Postman, panneaux Grafana, Azure Logic Apps, AWS Step Functions, routes Camel. Testez l'expression ici d'abord, puis collez dans le vrai outil en confiance.
- Construire des règles d'automatisation. Vous câblez Zapier, n8n, Make, Pipedream : la plupart ont une étape de filtre "JSONPath". Esquissez le filtre ici avec le vrai payload webhook, puis déposez l'expression qui marche dans la règle.
- Exploration de données rapide. Vous avez exporté vos données de quelque part (Notion, Airtable, Stripe, GitHub API) en JSON et vous voulez répondre à une question vite. "Combien de factures de plus de 500 € dans ce dataset ?" `$..invoices[?(@.amount > 500)]`, comptez les matches, terminé. Plus rapide que les astuces de tableur.