Testeur JSONPath
Testez instantanément les expressions JSONPath par rapport à vos données JSON avec notre outil d'évaluation en ligne gratuit. Écrivez des requêtes JSONPath pour extraire des éléments de données spécifiques de structures JSON complexes et voir les résultats en temps réel au fur et à mesure que vous tapez. Que vous appreniez la syntaxe JSONPath, déboguiez des extractions de réponses d'API, configuriez des pipelines de données, construisiez des règles d'automatisation ou exploriez des documents JSON imbriqués, ce testeur interactif fournit un retour instantané avec des valeurs correspondantes mises en évidence dans l'arborescence du document. Prend en charge toutes les fonctionnalités standard de JSONPath, y compris les expressions de filtre, la descente récursive, le découpage de tableau et les sélections génériques.
Ce Qui Est
JSONPath Tester est un outil de développement interactif permettant d'écrire, de tester et de déboguer des expressions JSONPath sur des documents JSON en temps réel. JSONPath est un langage de requête pour JSON similaire à XPath pour XML, fournissant une syntaxe concise pour naviguer et extraire des parties spécifiques des structures de données JSON. Il a été conçu à l'origine par Stefan Goessner et a depuis été normalisé dans diverses implémentations à travers les langages de programmation (Jayway JSONPath pour Java, jsonpath-ng pour Python, JSONPath Plus pour JavaScript). Notre testeur prend en charge la spécification JSONPath complète, y compris: sélection racine ( $ ), sélection enfant (.clé ou ['clé']), caractère générique (* pour tous les éléments), descente récursive (.. pour rechercher tous les niveaux), indexation de tableau ([n]), découpage de tableau ([début: fin: étape]), expressions de filtre (@.champ = = valeur ou @.champ > n), expressions de script, union d'indices ou de clés et fonctions de chaîne (comme .longueur()). L'outil fournit une validation syntaxique pour les expressions JSONPath, mettant en évidence les expressions invalides avant l'évaluation, et affiche les résultats à la fois au format tableau (tel que renvoyé par JSONPath) et en arborescence indiquant où les correspondances se produisent dans la structure du document.
Comment utiliser
- Collez ou entrez votre document JSON dans le panneau de données JSON sur le côté gauche de l'interface
- Tapez votre expression JSONPath dans le champ de saisie de la requête en haut, en utilisant la syntaxe JSONPath standard commençant par $ pour l'élément racine
- Regardez le panneau des résultats en temps réel se mettre à jour automatiquement au fur et à mesure que vous tapez, affichant toutes les valeurs correspondantes extraites de votre document JSON
- Parcourez le panneau Valeurs appariées pour voir le tableau exact de résultats que votre expression renverrait dans le code
- Utilisez le panneau Erreur/débogage sous l'entrée pour voir toutes les erreurs de syntaxe JSONPath avec des indicateurs de position pour un dépannage rapide
Exemples
Entrée: JSON: {magasin: {livre: [{titre: A}, {titre: B}]}} Chemin: $.magasin.réservez [*].titre
Processus: Navigate root.store.book → Wildcard * all items → Extract .title
Résultat: ["A", "D"]
Entrée: Chemin:$..prix (descente récursive)
Processus: Recursively search all levels → Match key 'price' → Collect values
Résultat: [9.99, 14.50, 7.00]
Recherches Connexes
Les gens recherchent aussi : chemin d'accès, testeur de chemin json, évaluateur jsonpath, requête jsonpath, expression du chemin jsonpath, extraction de données json.
chemin d'accèstesteur de chemin jsonévaluateur jsonpathrequête jsonpathexpression du chemin jsonpathextraction de données jsonlangage de requête jsonfiltre json
Questions Fréquemment Posées
Qu'est-ce que JSONPath et quand dois-je l'utiliser à la place du code natif?
JSONPath est un langage de requête pour JSON qui vous permet d'écrire des expressions concises pour sélectionner, filtrer et extraire des données à partir de structures JSON imbriquées sans écrire de boucles ni de logique conditionnelle. Vous devez utiliser JSONPath lorsque vous devez configurer des règles d'extraction de données dans des fichiers externes, des outils ou des spécifications déclaratives plutôt que de les coder en dur dans votre application. Les cas d'utilisation courants incluent: la configuration des transformations de réponse API Gateway (comme les modèles de mappage AWS API Gateway), l'écriture de règles d'extraction de données pour les pipelines ETL où les analystes métier peuvent écrire des expressions JSONPath, la mise en œuvre d'un filtrage dynamique dans les outils de tableau de bord et de reporting, la sélection d'appareils de données de test à partir de JSON complexes dans des tests automatisés et la création d'outils low-code/no-code où les utilisateurs spécifient des extractions de données sans codage. Les bibliothèques de langages de programmation compilent les expressions JSONPath au moment de l'exécution, ce qui vous permet d'obtenir une extraction de données dynamique et configurable sans redéploiement.
Quelle est la syntaxe des expressions JSONPath de base et avancées?
Les expressions JSONPath de base commencent par $ (root), utilisez .clé pour l'accès enfant à l'objet ($..magasin.livre[0].titre accède au premier titre de livre dans n'importe quel magasin), utilisez [n] pour l'indexation de tableau, utilisez [ * ] pour les caractères génériques de tableau et utilisez .. pour la descente récursive (trouver tous les champs de titre à n'importe quel niveau d'imbrication). Les expressions avancées incluent des prédicats de filtre [@.prix > 10 pour filtrer les tableaux par conditions], découpage de tableau [0:5: 2 pour début: fin: étape], opérateurs d'union [0,2,4 pour plusieurs indices], fonctions de longueur pour obtenir la taille des tableaux et notation entre crochets ['key'] pour les clés qui contiennent des caractères spéciaux ou des espaces. Par exemple:$.magasin.livre[?(@.prix < 10)].titre sélectionne les titres des livres de moins de 10 $et $..[?(@.category = = fiction)] sélectionne tous les objets avec un champ de catégorie égal à fiction à n'importe quel niveau d'imbrication.
En quoi JSONPath diffère-t-il de XPath et du pointeur JSON?
JSONPath est inspiré de XPath (pour XML) mais simplifié pour le modèle de données plus simple de JSON: JSONPath utilise $ pour root au lieu de XPath /, utilise .clé au lieu de l'axe enfant XPath /key, prend en charge .. pour une descente récursive similaire à / / de XPath, et inclut des expressions de filtre similaires aux prédicats de XPath. Le pointeur JSON (RFC 6901) est une norme beaucoup plus simple qui identifie une seule valeur spécifique dans un document JSON à l'aide des index /separated/keys/et/0/array/. Contrairement à JSONPath qui peut renvoyer plusieurs valeurs et filtrer les résultats, le pointeur JSON renvoie toujours exactement une valeur ou échoue. JSONPath est le bon choix lorsque vous devez extraire plusieurs valeurs correspondantes, naviguer de manière récursive, filtrer les résultats ou spécifier dynamiquement des requêtes. Le pointeur JSON est plus simple et approprié lorsque vous identifiez de manière unique une valeur spécifique (comme dans les opérations de patch JSON ou les références OpenAPI $ref).
Puis-je utiliser JSONPath dans différents langages de programmation?
Oui, les bibliothèques JSONPath sont disponibles pour la plupart des principaux langages de programmation. Les implémentations notables incluent: Jayway JSONPath pour Java (l'implémentation la plus complète en fonctionnalités, largement utilisée via Spring Boot), jsonpath - ng et jsonpath-python pour Python, JSONPath Plus pour JavaScript (Nœud.js et navigateur, utilisés par cet outil), GoJSONGo pour Go, rust-jsonpath pour Ruby et JSON:: Path pour Perl. La plupart des implémentations suivent la même syntaxe mais présentent de subtiles différences dans la prise en charge des expressions de filtre, le comportement de descente récursive et la gestion des cas limites. Lors du portage des expressions JSONPath entre les langages, testez minutieusement car les expressions de filtrage avec des conditions complexes peuvent se comporter différemment. Certaines implémentations sont plus proches de la spécification Goessner d'origine tandis que d'autres suivent le nouveau projet de norme IETF RFC 9535 pour JSONPath qui a été publié en février 2024.
Pourquoi mon expression JSONPath renvoie-t-elle des résultats vides?
Les causes courantes des résultats JSONPath vides incluent: traversée de chemin incorrecte (vérifiez que chaque niveau de votre chemin existe dans le document), sensibilité à la casse (les clés JSON sont sensibles à la casse, le nom est différent du nom), étapes de descente récursives manquantes (utilisez .. si vous ne connaissez pas la profondeur d'imbrication exacte), des index de tableau incorrects (les tableaux JSON sont indexés à zéro, donc [0] est le premier élément), des guillemets manquants dans la notation entre crochets( devrait être ['key'] pas [key]), des erreurs de syntaxe d'expression de filtre (utilisez @ not $ pour référencer le nœud actuel dans les filtres) et le nœud de résultat étant nul ou indéfini (JSONPath peut ignorer les nœuds nuls dans certaines implémentations). Commencez par simplifier votre expression en un chemin de base et vérifiez qu'elle renvoie des résultats, puis ajoutez progressivement de la complexité. Utilisez l'arborescence de notre testeur pour vérifier que la structure du document correspond à ce que vous attendez avant de créer des expressions complexes.