Requête JSONPath
Query, filter and extract data from JSON with JSONPath: $ root, .key, [0], [*] and .. recursive descent.
Extrayez et filtrez des données JSON avec des expressions de chemin
Qu’est-ce qu’une requête JSONPath ?
JSONPath est une syntaxe d’expression de chemin permettant de localiser et d’extraire des données JSON. Elle permet de trouver rapidement des champs dans des objets, des objets imbriqués et des tableaux, ainsi que de filtrer des éléments de tableau avec des conditions. Cet outil convient aux réponses d’API, fichiers de configuration, données de journaux et autres documents JSON.
Syntaxe JSONPath de base
$ représente la racine du JSON ; $.users accède à la propriété users ; $.users[0] sélectionne le premier élément du tableau ; $.users[*] sélectionne tous les éléments ; $.users[*].name extrait le nom de chaque élément de users ; $..price recherche récursivement une propriété price à n’importe quel niveau.
Les index de tableau négatifs sont également pris en charge. Par exemple, [-1] permet de sélectionner le dernier élément d’un tableau. Le caractère générique [*] permet de sélectionner tous les éléments.
Comment filtrer un tableau avec JSONPath ?
Pour filtrer les éléments d’un tableau selon la valeur d’un champ, utilisez une expression [?()]. Par exemple, $.users[?(@.age > 18)] sélectionne les utilisateurs dont l’âge est supérieur à 18. Le symbole @ représente l’élément courant du tableau et les propriétés peuvent être consultées avec @.field.
Les conditions prennent en charge ==, !=, >, >=, < et <=, ainsi que &&, || et ! pour combiner plusieurs conditions. Les parenthèses peuvent être utilisées pour modifier la priorité des conditions. Par exemple, $.users[?(@.age >= 18 && @.active == true)] sélectionne les éléments dont l’âge est d’au moins 18 ans et dont active vaut true.
Comment lire les résultats JSONPath ?
Après l’exécution de la requête, la zone de résultats affiche les données correspondantes et leur chemin. Le chemin est exprimé en JSONPath, par exemple $.users[0].name, afin de retrouver précisément le champ ou l’élément de tableau correspondant.
Un tableau JSON standard contenant les résultats est également disponible et peut être copié ou téléchargé. Les statistiques indiquent le nombre de correspondances. Lorsqu’aucun élément ne correspond, l’outil l’indique clairement. Pour éviter une page trop longue, la carte de résultats affiche au maximum les 200 premiers éléments, tandis que l’ensemble des correspondances reste disponible dans la sortie JSON.
Expressions JSONPath courantes
La page propose des boutons d’expressions courantes pouvant être utilisés directement avec les données d’exemple. Par exemple, $ recherche l’ensemble du JSON, $.users recherche users, $.users[*].name extrait tous les noms, $..price recherche price à tous les niveaux et $.users[?(@.age > 18)] filtre les utilisateurs selon leur âge.
Ces expressions peuvent servir de modèles : modifiez les noms de champs, les index et les conditions pour apprendre la syntaxe JSONPath ou localiser rapidement des données dans un JSON réel.
Comment interroger un fichier JSON local ?
Passez à l’onglet de téléversement de fichiers, puis faites glisser un fichier .json dans la page ou sélectionnez-le. Le fichier est lu directement dans le navigateur, avec une limite de 10 Mo par fichier. Une fois chargé, la requête est automatiquement exécutée avec l’expression JSONPath actuelle.
Que faire si JSONPath ne renvoie aucun résultat ?
Si l’expression ne génère pas d’erreur mais ne renvoie aucun résultat, vérifiez d’abord la structure réelle du JSON et les types de données. Par exemple, si users est un tableau, utilisez généralement $.users[*] ou $.users[0] plutôt que $.users.name. Pour rechercher une propriété portant le même nom à plusieurs niveaux, essayez $..name.
Si une expression de filtre ne renvoie rien, vérifiez le nom du champ, son type et la condition de comparaison. Par exemple, le nombre 18 et la chaîne "18" peuvent produire des résultats différents. En cas d’erreur de syntaxe, vérifiez que les symboles $, les points, les crochets et ?() sont correctement fermés.
Quelle partie de JSONPath cet outil prend-il en charge ?
L’outil prend en charge la racine $, l’accès aux propriétés, les index de tableau, les index négatifs, le caractère générique [*], la descente récursive .. et les expressions de filtre [?()]. Les conditions prennent en charge ==, !=, >, >=, <, <=, &&, ||, ! et les parenthèses. L’outil ne prétend pas prendre en charge toutes les extensions de la norme JSONPath complète.
Comment écrire une expression JSONPath ?
JSONPath utilise des expressions de chemin pour localiser les données JSON : $ représente la racine, .key accède à une propriété, [0] sélectionne un élément de tableau, [*] sélectionne tous les éléments et $..key recherche récursivement une propriété à tous les niveaux.
Pour filtrer un tableau, utilisez une expression comme [?(@.age > 18)] afin de sélectionner les éléments correspondant à une condition. Plusieurs conditions peuvent être combinées avec &&, || et !.
- Prend en charge $, .key, les index [0], les index négatifs, [*] et la descente récursive $..key
- Prend en charge les filtres [?()] pour sélectionner des éléments de tableau selon leurs valeurs
- Les conditions prennent en charge ==, !=, >, >=, <, <= ainsi que &&, || et !
- Affiche les chemins et valeurs correspondants et fournit une sortie en tableau JSON à copier ou télécharger
- Les fichiers JSON importés sont limités à 10 Mo et sont interrogés automatiquement avec l’expression actuelle
- Traitement entièrement local dans le navigateur, sans envoi des données au serveur