Aller au contenu
SDETRole
SDETRole

JSON et données

Testeur JSONPath

Essayez des expressions JSONPath sur du vrai JSON, avec chaque résultat et chemin.

Fonctionne entièrement dans votre navigateur Sans inscription

JSON document

0 chars

Result

Paste JSON or load the sample, then type an expression

Results update as you type. Filter expressions are evaluated by a safe interpreter, never with eval.

Syntax cheatsheet

ExpressionMeaningAction
$Root of the document
$.store.bicycleChild by name (dot notation)
$['store']['book']Child by name (bracket notation, for keys with spaces or dashes)
$..authorRecursive descent: every "author" at any depth
$.store.*Wildcard: all children
$.store.book[0]Array index (0-based)
$.store.book[-1:]Last element (slice)
$.store.book[0,2]Union of indexes
$.store.book[1:3]Slice: index 1 up to (not including) 3
$.store.book[?(@.price < 10)]Filter: elements matching a condition
$..book[?(@.isbn)]Filter: elements that have a truthy "isbn"
$..book[?(@.category == 'fiction' && @.price > 10)]Combined conditions with && and ||
$.store.*~Property names instead of values (jsonpath-plus extension)

Filters support @ and $ references, strings, numbers, true/false/null, == != < <= > >=, &&, || and !. Script expressions such as [(@.length-1)] and function calls are not executed.

À propos de cet outil

JSONPath est la façon dont la plupart des frameworks de test d’API extraient des valeurs d’une réponse : le JsonPath de REST Assured, les scripts Postman, Karate et de nombreuses bibliothèques d’assertions reposent sur les mêmes idées. Écrire l’expression sur une vraie réponse vous évite une série d’exécutions de test en échec. Ce testeur utilise jsonpath-plus avec l’évaluation de scripts désactivée, et évalue les expressions de filtre comme [?(@.price < 10)] avec un petit interpréteur intégré : rien de ce que vous collez n’est jamais exécuté comme du code. Chaque résultat est affiché avec son chemin normalisé, qui indique exactement d’où vient la valeur.

Mode d’emploi

  1. Collez une réponse JSON dans le panneau de gauche, ou cliquez sur « Load sample » (charger un exemple) pour le document classique de la librairie (bookstore).
  2. Tapez une expression commençant par $ ; les résultats se mettent à jour pendant la saisie.
  3. Choisissez d’afficher les valeurs, les chemins ou les deux, puis copiez le résultat.
  4. Utilisez les boutons « Try » (essayer) de l’aide-mémoire pour voir la descente récursive, les slices, les unions et les filtres en action.

FAQ : Testeur JSONPath

Pourquoi mon expression fonctionne-t-elle ici mais pas dans REST Assured ?

REST Assured utilise le GPath de Groovy, pas le JSONPath de Goessner. Le chemin « store.book.findAll { it.price < 10 }.title » en GPath équivaut ici à « $.store.book[?(@.price < 10)].title ». Les chemins pointés simples sont identiques dans les deux, mais les filtres et jokers utilisent une syntaxe différente.

Quelle syntaxe de filtre est prise en charge ?

Les filtres peuvent référencer l’élément courant (@) ou la racine ($), comparer avec == != < <= > >=, combiner avec && || et !, et utiliser des chaînes, nombres, true, false et null. Les expressions de script comme [(@.length-1)] et les appels de méthodes JavaScript ne sont volontairement pas exécutés ; utilisez la slice [-1:] pour le dernier élément.

Pourquoi n’ai-je aucun résultat alors que la clé existe ?

Les causes habituelles sont une différence de casse (userId contre userid), un [*] manquant quand la valeur est dans un tableau, ou une clé contenant un tiret ou un espace qui exige la notation entre crochets, comme $['first-name'].

Saisissez un terme pour rechercher sur SDETRole.

Recherche plein texte par Pagefind · s’exécute dans votre navigateur Ouvrir la page de recherche →