Testeur JSONPath
Collez un document JSON et tapez une expression JSONPath comme $..book[?(@.price<10)]. Le testeur l’évalue par rapport au document et affiche chaque valeur correspondante, avec le chemin exact de chaque correspondance. Utile pour valider la requête que vous êtes sur le point de coller dans un script ou une spécification API (Postman, k6, JMeter parlent tous JSONPath).
Comment tester une expression JSONPath
-
1
Collez le document JSON
Tout JSON valide, objet, tableau, profondément imbriqué.
-
2
Tapez l'expression
Commencez par `$` pour la racine. Utilisez `.` pour l'enfant, `..` pour la descente récursive, `[*]` pour le joker.
-
3
Voir les correspondances en direct
Chaque correspondance est affichée avec sa valeur et son JSONPath complet, mis en évidence dans le document original.
-
4
Copiez les résultats
Copiez les correspondances sous forme de tableau JSON, ou copiez chaque chemin individuel pour une utilisation dans le code en aval.
Référence de syntaxe JSONPath
| Expression | Signification |
|---|---|
$ |
Élément racine |
$.store |
Enfant de $ nommé store |
$["store"] |
Même chose, forme entre crochets |
$..author |
Toutes les propriétés author à n’importe quelle profondeur |
$.store.book[*] |
Chaque livre dans le magasin |
$.store.book[0] |
Premier livre |
$.store.book[-1:] |
Dernier livre |
$.store.book[0:2] |
Les deux premiers livres (tranche) |
$.store.book[?(@.isbn)] |
Livres avec une propriété isbn |
$.store.book[?(@.price < 10)] |
Livres moins chers que 10 |
$.store.book[?(@.category == "fiction")] |
Livres de fiction |
$..* |
Chaque valeur, partout |
Expressions de filtre
Les expressions de filtre utilisent @ pour faire référence au nœud actuel. Le testeur prend en charge les opérateurs courants ==, !=, <, >, <=, >=, &&, ||, et regex =~.
$.items[?(@.qty >= 10 && @.price < 50)]
Dialectes JSONPath
Il existe plusieurs implémentations JSONPath avec de petites incompatibilités. Ce testeur suit la spécification originale de Goessner et les raffinements de RFC 9535, qui sont compatibles avec :
- Jayway JsonPath (Java)
- jsonpath-plus (JavaScript)
- jsonpath-rw (Python)
- les expressions de chemin de base de jq
Les fonctionnalités incompatibles (comme les expressions de script avec JS arbitraire) sont signalées dans le panneau d’erreur.
Quand JSONPath surpasse un parseur complet
- Assertions de test :
pm.expect(jsonData).to.have.jsonPath(...)de Postman prend un chemin. - Extraction de configuration : extraire une valeur d’une énorme réponse API sans bibliothèque.
- Scripts de test de charge : k6, JMeter et Gatling prennent tous en charge JSONPath pour les vérifications.
- Kubernetes / AWS CLI : les drapeaux
--queryet--jsonpathvous permettent de façonner la sortie depuis la ligne de commande.
Erreurs courantes
- Utiliser
.sur un tableau.$.users.0.nameest incorrect ; utilisez$.users[0].name. - Oublier
..pour la profondeur. Un chemin comme$.namene correspond qu’aunamede premier niveau ; utilisez$..namepour tous. - Confondre JSONPath avec jq. jq est un sur-ensemble avec contrôle de flux et transformations ; JSONPath est uniquement pour l’extraction.
- Ancrage regex.
=~ /foo/correspond aux sous-chaînes ; utilisez/^foo$/pour un comportement de correspondance exacte.
Questions fréquentes
JSONPath est un langage d’extraction pur, sélectionner, filtrer, trancher. jq est un langage de requête / transformation complet avec contrôle de flux, variables et fonctions. Pour une extraction simple, JSONPath est plus portable ; pour les transformations, utilisez jq.
La spécification originale de Goessner plus les raffinements de RFC 9535, correspondant à Jayway JsonPath (Java) et jsonpath-plus (Node). Les extensions spécifiques au dialecte (expressions de script avec code arbitraire) ne sont pas prises en charge.
Oui. $..book[?(@.title =~ /^Harry.*/)] correspond à tous les livres dont le titre commence par “Harry”. Utilisez ^ et $ pour un comportement de correspondance complète.
Oui. Tant le JSON que l’évaluateur JSONPath vivent dans votre navigateur. Votre document et vos requêtes ne quittent jamais l’onglet.
Outils similaires
Référence de la table ASCII
Table ASCII complète de 0 à 127 avec décimal, hexadécimal, octal, binaire et référence numérique HTML pour chaque caractère, y compris les codes de contrôle comme NUL, LF et DEL.
Référence des caractères HTML
Liste consultable des entités HTML, de leurs codes nommés et numériques, et un copier-coller en un clic pour les caractères et symboles spéciaux.
Compteur de FPS
Mesurez les FPS du navigateur avec requestAnimationFrame : lissage, fréquence d'images min et max, seuil d'alerte et graphique facultatif. Tout se passe en local, sans envoi ni API.
Référence des raccourcis clavier
Recherchez les raccourcis par défaut documentés de VS Code, Chrome et Bash avec GNU Readline sous macOS, Windows et Linux.
Générateur de carte CSS
Créez le CSS d’un conteneur de carte : fond, bordure, rayon des angles, espacement intérieur et ombre douce, avec aperçu immédiat et code à copier-coller.
Formateur HTML
Mettez du HTML en forme localement dans le navigateur avec une indentation de deux ou quatre espaces. Aucun HTML n’est envoyé ni validé.
Outil disponible dans d’autres langues
- JSONPath 테스터 [KO]
- Testador de JSONPath [PT]
- Công cụ kiểm thử JSONPath [VI]
- JSONPath-testare [SV]
- JSON Path Tester [NL]
- أداة اختبار مسارات JSON (JSONPath) [AR]
- JSONPath-Tester [DE]
- Probador de JSONPath [ES]
- JSON Path Tester [ID]
- JSONPath テスター [JA]
- เครื่องมือทดสอบ JSON Path [TH]
- Tester JSONPath [PL]
- JSONPath Tester [EN]
- Tester JSONPath [IT]
- JSONPath Tester [RU]
- JSONPath Test Aracı [TR]
- JSON路径测试器 [ZH]