Testeur JSONPath
JSONPath Tester
Exécute une expression JSONPath sur un document et met en évidence les nœuds trouvés au fil de la saisie.
Exécute une requête JSONPath sur un document et montre chaque nœud sélectionné, avec le chemin qui mène à chacun. Il implémente le RFC 9535 — la norme de 2024 — plutôt que l'une des vingt années d'implémentations mutuellement incompatibles qui l'ont précédée, ce qui compte dès que votre requête contient un filtre.
Requête
Depuis la racine : n’importe où en dessous, le membre « book » ; puis les enfants qui passent le filtre ; puis le membre « title ».
Document
Correspondances
Les résultats apparaissent ici au fur et à mesure que vous tapez.
Ceci suit la RFC 9535, la norme de 2024, et non les vingt ans d’implémentations incompatibles qui l’ont précédée. Les différences qui font mal : un résultat est une liste de nœuds et garde les doublons, .. visite un nœud avant ses enfants, un membre absent n’est égal qu’à un autre membre absent, et comparer avec une requête qui pourrait désigner plusieurs nœuds est une erreur de syntaxe plutôt qu’une supposition. Les motifs contenus dans match() et search() sont confiés au moteur d’expressions régulières du navigateur lui-même, qui accepte plus que le dialecte I-Regexp prescrit par la RFC.
Comment s’en servir
Collez le document
Tout ce qui s'analyse comme du JSON. La requête tourne dans un worker : un gros document laisse donc la page réactive pendant que vous tapez.
Écrivez la requête, ou partez d'un exemple
Les boutons sous la zone couvrent les formes dont on a besoin : un joker, une recherche sur les descendants, une tranche, un filtre, une expression régulière et une fonction. Une description en langage courant de ce que veut dire votre requête apparaît au-dessus d'eux.
Lisez les correspondances avec leurs chemins
Chaque résultat porte le chemin normalisé qui y a mené : vous voyez donc si une correspondance vient bien de là où vous l'attendiez. La ligne de statistiques indique si la requête est singulière — capable de sélectionner au plus un nœud —, ce que serait un JSON Pointer.
Questions fréquentes
Ma requête marche dans un autre outil mais pas ici.
Probablement une différence liée au RFC 9535. La norme a retiré des choses que les implémentations plus anciennes autorisaient : les expressions de script entre `()`, `$..[?(@.x)]` avec l'ancienne syntaxe de filtre parenthésée, et la comparaison avec une requête susceptible de sélectionner plusieurs nœuds — ce dernier cas est désormais une erreur de syntaxe plutôt qu'une supposition.
Pourquoi la même valeur apparaît-elle deux fois ?
Parce que le résultat est une liste de nœuds, pas un ensemble. `$..price` qui atteint le même nœud par deux branches le liste deux fois, à dessein — dédupliquer perdrait l'information sur la provenance de chaque correspondance.
Les expressions régulières de `match()` sont-elles standard ?
Pas exactement. Le RFC spécifie I-Regexp, un petit dialecte ; ici, les motifs sont confiés au moteur de votre propre navigateur, qui en accepte davantage. Un motif qui fonctionne ici peut être rejeté par une implémentation stricte — bon à savoir avant d'en mettre un en production.
Peut-il modifier le document ?
Non — JSONPath sélectionne, il n'écrit pas. Pour éditer, les chemins affichés ici sont des pointeurs RFC 6901 et peuvent aller directement dans un JSON Patch, que l'outil de diff JSON de ce site produit.
À alimenter depuis
Formateur et validateur JSON
JSON Formatter & Validator
Met en forme, minifie et valide du JSON en désignant la ligne et la colonne exactes de l’erreur de syntaxe.
Conversion JSON ⇄ XML
JSON ⇄ XML
Convertit entre JSON et XML, avec un traitement réglable des attributs, des tableaux et des nœuds texte.
Comparateur JSON
JSON Diff
Compare deux documents JSON sur leur structure, sans tenir compte de l’ordre des clés, et signale les chemins ajoutés, retirés et modifiés.
Bac à sable jq
jq Playground
Exécute des filtres jq 1.7 sur du JSON collé, directement dans le navigateur, avec un aide-mémoire et la ligne de commande correspondante.
Ensuite
Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.
Bac à sable jq
jq Playground
Exécute des filtres jq 1.7 sur du JSON collé, directement dans le navigateur, avec un aide-mémoire et la ligne de commande correspondante.
Comparateur JSON
JSON Diff
Compare deux documents JSON sur leur structure, sans tenir compte de l’ordre des clés, et signale les chemins ajoutés, retirés et modifiés.
Formateur et validateur JSON
JSON Formatter & Validator
Met en forme, minifie et valide du JSON en désignant la ligne et la colonne exactes de l’erreur de syntaxe.
Testeur XPath
XPath Tester
Évalue une expression XPath ou un sélecteur CSS sur du XML ou du HTML et liste tous les nœuds trouvés.
Conversion JSON ⇄ CSV
JSON ⇄ CSV
Aplatit du JSON imbriqué en colonnes ou reconstruit des objets depuis un tableau, avec un nommage des colonnes par chemin pointé.
JSON vers TypeScript
JSON to TypeScript
Déduit des interfaces ou des types TypeScript à partir d’un échantillon JSON, en fusionnant les champs facultatifs et les unions.