Testeur JSONPath
Collez du JSON et testez les expressions JSONPath de manière interactive. Consultez les résultats correspondants en temps réel, avec des chemins d'exemple pour commencer rapidement.
Entrée
Sortie
Documentation
Qu'est-ce que JSONPath ?
JSONPath est un langage de requête pour JSON, similaire à la façon dont XPath fonctionne pour XML. Il vous permet de naviguer et d'extraire des données d'une structure JSON en utilisant des expressions de chemin. Une expression JSONPath commence par $, qui représente la racine du document, et utilise la notation pointée (.key) ou la notation entre crochets (['key']) pour parcourir les objets, et [index] pour accéder aux éléments du tableau.
JSONPath a été originellement décrit par Stefan Gössner en 2007 et est devenu depuis une norme largement utilisée dans les API, les frameworks de test et les pipelines de traitement de données. Il est pris en charge dans de nombreux langages et outils, notamment JavaScript, Python, Java, et des bases de données comme PostgreSQL et MySQL.
Description de l'outil
Cet outil vous permet de coller n'importe quel document JSON valide et d'écrire une expression JSONPath pour l'interroger. Les résultats s'affichent instantanément au fur et à mesure que vous tapez, affichant toutes les valeurs correspondantes sous forme de tableau JSON formaté. Le nombre de correspondances s'affiche séparément pour que vous puissiez rapidement vérifier combien de nœuds ont été sélectionnés.
Exemples
JSON d'entrée :
{
"store": {
"book": [
{ "title": "Moby Dick", "price": 8.99, "category": "fiction" },
{ "title": "War and Peace", "price": 12.5, "category": "fiction" },
{
"title": "A Brief History of Time",
"price": 7.99,
"category": "science"
}
]
}
}| Expression | Résultat |
|---|---|
$.store.book[*].title |
Tous les titres de livres |
$.store.book[0] |
Premier objet livre |
$.store.book[?(@.price < 10)] |
Livres moins chers que 10 $ |
$.store.book[?(@.category == "fiction")] |
Livres de fiction uniquement |
$..price |
Toutes les valeurs de prix n'importe où dans le document |
Fonctionnalités
- Évaluation en temps réel — les résultats se mettent à jour au fur et à mesure que vous tapez l'expression ou modifiez le JSON
- Affiche le nombre de correspondances dans un champ dédié
- Bouton de copie sur le champ d'expression pour une réutilisation rapide
- Bouton de collage pour insérer rapidement du JSON ou des expressions depuis le presse-papiers
- Rapport d'erreurs pour JSON invalide ou expressions de chemin mal formées
Comment ça marche
Les expressions JSONPath sont évaluées par rapport au JSON analysé en utilisant la bibliothèque jsonpath-plus. Le symbole $ fait référence à l'élément racine. Les nœuds enfants sont accessibles avec . ou [], les caractères génériques avec *, la descente récursive avec .., et les filtres avec [?(...)]. Le résultat est toujours un tableau de valeurs correspondantes, même si une seule correspondance est trouvée.
Options expliquées
| Syntaxe | Signification |
|---|---|
$ |
Élément racine |
.key ou ['key'] |
Propriété enfant |
[*] |
Tous les éléments du tableau |
[0] |
Premier élément du tableau (indexé à partir de 0) |
[-1] |
Dernier élément du tableau |
[0,2] |
Éléments aux index 0 et 2 |
[0:2] |
Éléments de l'index 0 à 1 (tranche) |
..key |
Descente récursive — trouver key à n'importe quelle profondeur |
[?(@.price > 5)] |
Filtre — éléments où price est supérieur à 5 |
@ |
Nœud actuel (utilisé dans les expressions de filtre) |
Cas d'usage
- Développement d'API — vérifiez qu'un sélecteur JSONPath utilisé dans un client REST, une suite de test ou un outil de mappage de données extrait les champs attendus d'une réponse API
- Transformation de données — identifiez les valeurs à extraire des charges JSON imbriquées avant d'écrire un script de transformation
- Apprentissage de JSONPath — expérimentez la syntaxe de chemin de manière interactive pour comprendre comment les opérateurs comme
..,[*]et[?()]se comportent sur des données réelles
Conseils
- Utilisez
$..*pour obtenir chaque valeur du document entier — utile pour explorer des structures JSON inconnues. - Les expressions de filtre prennent en charge les comparaisons (
==,!=,<,>,<=,>=) et peuvent référencer des propriétés imbriquées :[?(@.author.name == "Rees")]. - Pour correspondre à une propriété indépendamment de sa profondeur, utilisez la descente récursive
..:$..titletrouve tous les champstitlen'importe où dans le document.