Requête JSON
Extrayez des valeurs du JSON avec des expressions JSONPath ou JSON Pointer RFC 6901
JSON
Requête
Requête JSON
Extrayez des valeurs du JSON avec des expressions JSONPath ou JSON Pointer RFC 6901
Fonctionnalités
- Deux modes de requête côte à côte : JSONPath (via le QueryService partagé avec wildcards et accès crochets) et JSON Pointer RFC 6901 (séparé par slashs, avec échappement ~0/~1) — choisissez la syntaxe qui correspond à vos outils existants
- Le wildcard `*` à n'importe quel segment se développe à toutes les clés d'objet ou éléments de tableau à ce niveau — `$.store.books[*].title` retourne tous les titres sans écrire de boucle
- Chaque résultat affiche son chemin concret ET sa valeur : les résultats ne sont pas une réponse unique mais une liste de chemins — une expansion wildcard produit N lignes à copier individuellement ou en groupe
- Le mode JSON Pointer valide la syntaxe des segments : commence par `/`, segments entiers indexent les tableaux, segments nommés indexent les objets, `~1` décode en `/` et `~0` en `~` — même sémantique que JSON Schema instancePath et JSON Patch
- Bouton copier par résultat écrit la valeur dans le presse-papiers (chaînes brutes, structures en JSON pretty-print), et Tout copier dumpe la liste `chemin: valeur` complète en texte brut
- Erreurs de parsing et erreurs de requête sont remontées séparément avec le message complet du moteur JS — vous savez immédiatement si c'est votre JSON ou votre expression qui est en cause
- Charger un exemple remplit un petit document librairie avec une requête fonctionnelle pour le mode actif — référence utile pour la syntaxe à la première utilisation
- Purement côté client : JSON, expressions et résultats ne quittent jamais le navigateur ; fonctionne hors-ligne une fois la page mise en cache
Mode d'emploi
- Collez le document JSON à interroger dans la zone gauche.
- Choisissez un mode : JSONPath (bon pour les sélecteurs avec wildcards) ou JSON Pointer (bon pour nommer un seul nœud sans ambiguïté).
- Tapez l'expression dans le champ requête — des exemples sont affichés dans le placeholder pour chaque mode.
- Appuyez sur Exécuter la requête ou tapez Entrée dans le champ. Les résultats apparaissent avec leurs chemins concrets et valeurs ; un compteur indique combien ont été trouvés.
- Copiez les valeurs individuellement avec l'icône à côté de chaque résultat, ou utilisez Tout copier pour la liste `chemin: valeur` complète.
- Utilisez Charger un exemple pour remplir les deux entrées avec un exemple fonctionnel si vous découvrez la syntaxe.
Conseils et bonnes pratiques
- Quand vous n'êtes pas sûr que votre JSON a une clé, utilisez d'abord un wildcard pour énumérer ce qui est réellement là, puis affinez.
- Les chemins JSON Pointer sont triables en tant que chaînes — utile pour diffuser des ensembles de chemins entre deux structures.
- Si une requête retourne un match mais vous en attendiez plusieurs, vérifiez les fautes de frappe (`book` vs `books`) — JSONPath ici retourne un match exact, pas flou.
- Pour des données profondément imbriquées, JSON Pointer est plus court que JSONPath car il ne porte pas `$` et `.` — utile dans chat ou messages de commit.
- Combinez avec JSON Tree : naviguez visuellement d'abord, puis copiez un pointer connu-bon dans cet outil pour réutilisation.
FAQ
Quelle syntaxe JSONPath est supportée ?
Le sous-ensemble minimal mais utile : `$` racine, `.key` accès membre, `['key']` accès cité (pour clés avec points ou caractères spéciaux), `[N]` index tableau, et `*` wildcard à n'importe quel segment. Les expressions de filtre (`[?(@.price < 30)]`), l'opérateur descendant (`..`) et le slicing (`[1:3]`) ne sont pas supportés ici — pour ceux-là, utilisez l'onglet JSONPath de JSON Formatter qui porte un moteur plus riche.
Quelle est la différence entre JSONPath et JSON Pointer ?
JSONPath est un langage de requête (XPath-pour-JSON) — il peut sélectionner plusieurs nœuds via wildcards, descendants et prédicats. JSON Pointer (RFC 6901) est une notation de chemin — il nomme EXACTEMENT UN nœud, qui existe ou non. Utilisez JSONPath quand vous voulez un ENSEMBLE de résultats ; JSON Pointer quand vous voulez une localisation déterministe unique (pour JSON Patch ou pour copier un instancePath d'un validateur de schéma).
Pourquoi ai-je besoin des deux modes ?
Différents outils et standards utilisent différentes notations. Les erreurs instancePath JSON Schema sont JSON Pointer. fast-json-patch utilise JSON Pointer. JSONPath est ce qu'attendent la plupart des CLI de requête JSON et bibliothèques. Avoir les deux modes ici signifie que vous pouvez copier un chemin entre outils sans le réécrire.
Comment les clés avec caractères spéciaux sont-elles gérées ?
JSONPath : quotez-les entre crochets — `$['weird.key']` accède à la clé littéralement nommée `weird.key`. JSON Pointer : échappez selon RFC 6901 — `/` dans une clé devient `~1`, `~` devient `~0`. Le placeholder montre la forme standard pour chaque mode.
Que se passe-t-il si le chemin ne matche rien ?
Vous obtenez un résultat 0-matches et une note « La requête n'a renvoyé aucun résultat » plutôt qu'une erreur. C'est la convention JSONPath / JSON Pointer normale : les chemins absents sont absence, pas échec. Distinguez l'absence de l'entrée malformée en regardant si la ligne d'erreur est apparue.
Les wildcards peuvent-ils descendre dans des tableaux imbriqués ?
Oui, à chaque niveau. `$.users[*].roles[*]` wildcards d'abord à travers tous les utilisateurs, puis à travers les rôles de chacun, produisant chaque chaîne de rôle. Le tableau de sortie montre le chemin concret résolu de chaque match (ex. `$.users[0].roles[2]`), utile quand vous voulez savoir d'où vient exactement un hit.
Quelque chose est-il envoyé à un serveur ?
Non. JSON.parse tourne dans votre navigateur, l'évaluation JSONPath / JSON Pointer tourne dans votre navigateur, et les résultats sont rendus dans la page sans appel réseau. L'onglet Réseau de DevTools ne montre rien au clic Exécuter la requête.
Quelle différence avec l'onglet requête de JSON Formatter ?
JSON Formatter est multi-outil : formatage, validation, schéma, JSONPath, diff. Cette JSON Query autonome est l'interface minimale : une URL, deux modes, résultats-en-liste avec copie par résultat, pas de surface supplémentaire. Utilisez le Formatter quand vous voulez une vue unique qui combine plusieurs workflows JSON ; celui-ci quand vous voulez juste extraire des valeurs.