Requête JSON avec JSONPath
Interrogez du JSON avec JSONPath : jokers, descente récursive, tranches et filtres comme [?(@.price < 10)]. Résultats en direct. Ce n'est pas la syntaxe jq.
$ est la racine ; .name ou ['name'] sélectionne un enfant ; [0] un élément de tableau ; [*] tous les éléments ; .. cherche à toute profondeur ; [?(@.price < 10)] filtre ; [-1:] prend le dernier élément.
S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.
Outils Connexes
Voir ToutQu'est-ce que Requête JSON (JSONPath) ?
L'outil Requête JSON évalue des expressions JSONPath sur votre JSON et affiche chaque valeur correspondante sous forme de tableau JSON. Il prend en charge les jokers, la descente récursive, les tranches de tableaux et les expressions de filtre. Attention : il utilise la syntaxe JSONPath ($.store.book[*].title), pas la syntaxe à pipes de jq.
Comment utiliser Requête JSON (JSONPath)
- Collez le JSON dans la zone JSON en entrée (ou cliquez sur un exemple, qui charge aussi des données d'exemple).
- Saisissez une Expression JSONPath, par exemple
$..price. - Lisez les valeurs correspondantes dans la sortie ; l'étiquette indique combien ont été trouvées.
- Copiez le tableau de résultats avec Copier.
Exemple
{"store":{"book":[{"title":"A","price":8},{"title":"B","price":12}]}}
Query: $.store.book[?(@.price < 10)].title [ "A" ]
Quand utiliser Requête JSON (JSONPath)
Utilisez-le pour tester des expressions JSONPath avant de les employer dans des outils qui l'acceptent (passerelles d'API, kubectl -o jsonpath de Kubernetes, frameworks de test, supervision). Si vous avez besoin de fonctions jq comme les pipes, map ou la construction d'objets, utilisez jq lui-même – elles ne sont pas prises en charge. Pour un seul chemin exact, le chercheur de chemin JSON est plus simple.
Comment fonctionne Requête JSON (JSONPath)
Les requêtes sont évaluées avec la bibliothèque jsonpath-plus (JSONPath de Goessner plus extensions). $ est la racine, .name ou ['name'] sélectionne une propriété, [0] un indice, [*] tous les enfants, .. cherche à toute profondeur, [start:end] découpe des tableaux (les indices négatifs comptent depuis la fin) et [?(…)] filtre avec @ comme élément courant. Les expressions de filtre s'exécutent dans l'évaluateur sûr de jsonpath-plus, qui prend en charge les comparaisons et opérateurs logiques mais n'exécute pas de JavaScript arbitraire. Le résultat est toujours un tableau de correspondances, affiché avec une indentation de 2 espaces.
Cas d'utilisation courants
- Extraire tous les prix ou identifiants d'une réponse d'API
- Tester du JSONPath pour des tests d'API ou des règles de supervision
- Filtrer des éléments de tableau selon une condition
- Prototyper des requêtes de type kubectl jsonpath
Note de Sécurité
Tout s'exécute localement dans votre navigateur : le code que vous collez n'est pas envoyé.
Questions Fréquentes
Est-ce jq ?
Non. Il utilise JSONPath, un autre langage de requête. Les pipes et fonctions jq ne sont pas pris en charge.
Pourquoi le résultat est-il toujours un tableau ?
Une expression JSONPath peut correspondre à un nombre quelconque de valeurs ; toutes les correspondances sont donc renvoyées dans un tableau.
Mon JSON est-il envoyé à un serveur ?
Non, la requête s'exécute dans votre navigateur.
Les grands nombres perdent-ils en précision ici ?
Oui, les valeurs sont évaluées comme des nombres JavaScript : les entiers supérieurs à 2^53 peuvent être arrondis dans les résultats.