Interrogez le JSON collé avec des sélecteurs et des filtres de comparaison simples, puis consultez chaque valeur trouvée et son chemin. La syntaxe non prise en charge est refusée ; aucune expression JavaScript n’est exécutée.
Fonctionne localement dans votre navigateurPrend en charge les noms, la notation entre crochets, les index, les caractères génériques, les unions, les tranches, les sélecteurs descendants et les filtres de comparaison simples.
L'analyse des requêtes principales est effectuée localement. Les formes d'expression non prises en charge renvoient une erreur claire plutôt que de revenir à eval().
Collez un document JSON, saisissez une expression JSONPath et lisez chaque correspondance sous forme de chemin normalisé accompagné de sa valeur. La requête s'exécute sur le texte de cet onglet : rien n'est envoyé et aucune requête ne quitte la page.
L'analyseur est propre à cet outil et n'a jamais recours à eval(). La syntaxe qu'il ne prend pas en charge s'arrête sur un message explicite : les filtres combinés avec &&, || ou ! sont refusés, tout comme la comparaison d'un filtre avec la racine du document.
Noms, noms entre crochets et index : $.store.book, $["store"]["book"], $['store']['bicycle'], [0], [-1] pour le dernier élément et les unions comme [0,1] ou ['a','b']. Un nom sans crochets commence par une lettre, un souligné ou $, puis accepte lettres, chiffres, souligné, $ ou tiret ; une clé contenant un point ou une espace doit passer par les crochets.
Caractères génériques, tranches et descendants : $.store.*, $..price, [0:2], [::2], [::-1]. Les tranches suivent les mêmes bornes qu'en Python : une borne négative compte depuis la fin et un pas négatif parcourt à l'envers.
Un filtre évalue une seule comparaison et accepte ==, !=, <, <=, > et >= face à un nombre, une chaîne entre guillemets, true, false ou null : [?(@.price < 10)] ou [?(@.title == "Moby Dick")]. Un filtre sans opérateur conserve les nœuds où la propriété existe et est vraie : [?(@.isbn)].
Ce que l'analyseur ne sait pas évaluer est refusé plutôt que deviné : [?(@.price > 1 && @.price < 10)] indique que les filtres combinés ne sont pas pris en charge, [?(@.price > $.expensive)] qu'un filtre ne peut pas être comparé à la racine, et une expression régulière comme =~ /a/ que l'expression de filtre n'est pas prise en charge.
Chaque correspondance annonce son chemin sous une forme unique, $["store"]["book"][0]["author"], quelle que soit la notation utilisée dans la requête, et un même nœud n'apparaît jamais deux fois. Copier le résultat JSON renvoie les valeurs trouvées sous forme d'un tableau JSON, prêt pour un fixture ou un diff.
La carte Matchs affiche les 200 premiers résultats et précise combien sont omis ; le bouton de copie fournit toujours le tableau complet. Un document de 50 000 nœuds répond à une requête générique en moins d'une seconde, et les documents très imbriqués sont parcourus sans dépassement de pile.