DevToolPal
FR

Évaluateur JSONPath

Exécutez une requête JSONPath sur du JSON et affichez chaque valeur trouvée et son chemin, avec filtres et fonctions (RFC 9535).

Traitement local, rien n'est envoyé

Options

Afficher

JSON

0 caractères · 0 B

Correspondances

0 caractères · 0 B

À quoi ça sert

JSONPath est un langage de requête pour JSON, l’équivalent de XPath pour XML. Une requête comme $.store.book[*].title parcourt un document et sélectionne les valeurs qui vous intéressent. Cet évaluateur exécute une expression JSONPath sur le JSON collé et liste chaque correspondance dans un tableau JSON : les valeurs trouvées, leurs chemins normalisés (par exemple $['store']['book'][0]['title']), ou les deux.

Il suit la RFC 9535, le standard de l’IETF publié en 2024 : les résultats sont donc identiques à ceux des bibliothèques modernes en JavaScript, Java, Python, Go et d’autres langages. Servez-vous-en pour essayer une requête avant de l’écrire dans votre code, comprendre pourquoi un filtre ne renvoie rien ou extraire quelques champs d’une grosse réponse d’API.

Mode d’emploi

  1. Collez du JSON dans la zone JSON, importez un fichier .json ou cliquez sur Exemple pour charger le classique document de librairie.
  2. Saisissez une requête dans Expression JSONPath. Les correspondances se mettent à jour pendant la saisie.
  3. Choisissez quoi Afficher : valeurs, chemins ou paires chemin/valeur.
  4. Copiez ou téléchargez le résultat. En cas d’erreur de syntaxe, le caractère où l’analyse a échoué est indiqué.

Aide-mémoire de la syntaxe

ExpressionSignification
$La racine du document
.name ou ['name']Un membre d’un objet
[0], [-1]Un élément de tableau (les négatifs comptent depuis la fin)
[1:3], [::2]Une tranche : début, fin (exclue) et pas
*Tous les membres ou éléments
..namename à n’importe quelle profondeur
[?@.price < 10]Les enfants pour lesquels le filtre est vrai ; @ est l’élément courant

Les filtres peuvent combiner des conditions avec &&, || et !, comparer avec d’autres parties du document via $ et appeler des fonctions : length(@.tags) > 2, count(@.items[*]) == 0, match(@.code, '[A-Z]{3}') pour une correspondance de toute la chaîne avec l’expression régulière, et search(@.title, 'Ring') pour une correspondance n’importe où.

Exemple

Avec la librairie d’exemple, cette requête sélectionne les titres des livres à moins de 10 :

$.store.book[?@.price < 10].title

et renvoie :

["Sayings of the Century", "Moby Dick"]

Remplacez-la par $..book[?@.isbn].author pour lister les auteurs des livres qui ont un ISBN, ou par $..price pour réunir tous les prix du magasin, y compris celui du vélo.

FAQ

› Quelle syntaxe JSONPath est prise en charge ?

La syntaxe standard de la RFC 9535 : noms de membres avec point ou crochets, jokers, index de tableau (y compris négatifs), tranches, recherche en profondeur avec .., filtres avec comparaisons et && || !, ainsi que les fonctions length(), count(), match(), search() et value(). L’ancienne forme ?(@.price < 10) fonctionne aussi, car les parenthèses ne font que grouper.

› Pourquoi ma requête renvoie-t-elle un tableau vide ?

Un tableau vide signifie que la requête est valide mais que rien ne correspond. Vérifiez les noms de membres (sensibles à la casse) et si une valeur est un tableau ou un objet. Une requête large comme $..* avec Afficher sur Chemins montre le contenu du document.

› Puis-je utiliser des expressions de script comme [(@.length-1)] ?

Non. Les expressions de script exécutent du code arbitraire et ne font pas partie du standard. Utilisez un index négatif : [-1] est le dernier élément et [-2:] les deux derniers.

› Mon JSON est-il envoyé à un serveur ?

Non. La requête est analysée et évaluée dans votre navigateur par le code de la page ; rien n’est envoyé.