JSONPath dans les API : un guide simple

Les réponses JSON complexes effraient ? JSONPath simplifie ! Il extrait des données spécifiques facilement. Qu'est-ce que c'est et comment l'utiliser ?

Louis Dupont

Louis Dupont

5 June 2025

JSONPath dans les API : un guide simple

Vous êtes-vous déjà retrouvé à fouiller dans une réponse JSON massive, en essayant de trouver le seul élément de données dont vous avez besoin ? Si c'est le cas, vous savez que cela peut ressembler un peu à chercher une aiguille dans une botte de foin. Voici JSONPath - un petit outil astucieux qui peut vous faciliter la vie lorsque vous travaillez avec des données JSON dans les API.

Qu'est-ce que JSONPath ?

JSONPath est un langage de requête pour JSON, similaire à XPath pour XML. Il vous permet de naviguer et d'extraire des parties spécifiques de vos données JSON à l'aide d'une syntaxe simple et intuitive. Considérez-le comme un moyen d'exécuter des requêtes sur vos données JSON et d'obtenir exactement ce dont vous avez besoin sans avoir à parcourir l'intégralité de la réponse.

Pourquoi utiliser JSONPath ?

Imaginez que vous ayez une énorme réponse JSON d'une API ; tout ce dont vous avez besoin est la valeur d'un champ spécifique imbriqué en profondeur. Sans JSONPath, vous devriez généralement écrire un tas de code pour analyser le JSON, ce qui peut être fastidieux et sujet aux erreurs. JSONPath simplifie cela en vous permettant de spécifier exactement ce que vous souhaitez extraire, ce qui rend votre code plus propre et plus facile à maintenir.

Comment fonctionne JSONPath ?

JSONPath utilise une syntaxe similaire à la notation d'objet JavaScript, avec quelques fonctionnalités supplémentaires pour des requêtes plus complexes. Voici un aperçu rapide de la syntaxe de base :

Plongeons-nous dans quelques exemples pour voir JSONPath en action.

Exemples JSONPath de base

Considérez les données JSON suivantes provenant d'une API de base de données de films :

{
  "movies": {
    "action": [
      { "title": "Mad Max: Fury Road", "director": "George Miller", "year":                  2015, "rating": 8.1 },
      { "title": "John Wick", "director": "Chad Stahelski", "year": 2014,                     "rating": 7.4 }
    ],
    "drama": [
      { "title": "The Shawshank Redemption", "director": "Frank Darabont",                   "year": 1994, "rating": 9.3 },
      { "title": "Forrest Gump", "director": "Robert Zemeckis", "year":                       1994, "rating": 8.8 }
    ],
    "comedy": [
      { "title": "The Grand Budapest Hotel", "director": "Wes Anderson",                     "year": 2014, "rating": 8.1 }
    ]
  }
}

Extraire tous les films d'action :

$.movies.action[*]

Cela vous donnera un tableau de tous les objets de films d'action.

Extraire les titres de tous les films dramatiques :

$.movies.drama[*].title

Cela renverra un tableau des titres de tous les films dramatiques : ["The Shawshank Redemption", "Forrest Gump"].

Extraire la note de « Mad Max : Fury Road » :

$.movies.action[?(@.title == "Mad Max: Fury Road")].rating

Cela renverra la note de « Mad Max : Fury Road » : 8.1.

Trouver tous les films sortis en 2014 :

$.movies..[?(@.year == 2014)]

Cela renverra tous les films sortis en 2014, qui dans ce cas sont : ["John Wick", "The Grand Budapest Hotel"].

JSONPath dans les API

L'utilisation de JSONPath dans les API est incroyablement utile lorsque vous souhaitez extraire des informations spécifiques d'une réponse JSON. De nombreux langages de programmation et outils disposent de bibliothèques qui prennent en charge JSONPath, ce qui facilite l'intégration dans vos projets.

Par exemple, en Javascript, vous pouvez utiliser la bibliothèque jsonpath :

const jsonpath = require('jsonpath');

// Sample JSON data
const data = {
  movies: {
    action: [
      { title: "Mad Max: Fury Road", director: "George Miller", year: 2015, rating: 8.1 },
      { title: "John Wick", director: "Chad Stahelski", year: 2014, rating: 7.4 }
    ],
    drama: [
      { title: "The Shawshank Redemption", director: "Frank Darabont", year: 1994, rating: 9.3 },
      { title: "Forrest Gump", director: "Robert Zemeckis", year: 1994, rating: 8.8 }
    ],
    comedy: [
      { title: "The Grand Budapest Hotel", director: "Wes Anderson", year: 2014, rating: 8.1 }
    ]
  }
};

// Extracting titles of all drama movies
const titles = jsonpath.query(data, '$.movies.drama[*].title');
console.log(titles); // Output: ["The Shawshank Redemption", "Forrest Gump"]

De même, en Python, vous pouvez utiliser la bibliothèque jsonpath-ng :

from jsonpath_ng import jsonpath, parse

# Sample JSON data
data = {
    "movies": {
        "action": [
            {"title": "Mad Max: Fury Road", "director": "George Miller", "year": 2015, "rating": 8.1},
            {"title": "John Wick", "director": "Chad Stahelski", "year": 2014, "rating": 7.4}
        ],
        "drama": [
            {"title": "The Shawshank Redemption", "director": "Frank Darabont", "year": 1994, "rating": 9.3},
            {"title": "Forrest Gump", "director": "Robert Zemeckis", "year": 1994, "rating": 8.8}
        ],
        "comedy": [
            {"title": "The Grand Budapest Hotel", "director": "Wes Anderson", "year": 2014, "rating": 8.1}
        ]
    }
}

# Extracting titles of all drama movies
jsonpath_expr = parse('$.movies.drama[*].title')
titles = [match.value for match in jsonpath_expr.find(data)]
print(titles)  # Output: ["The Shawshank Redemption", "Forrest Gump"]

Utilisation de JSONPath dans Apidog

An Image showing the dashboard of Apidog

Apidog est un outil polyvalent conçu pour simplifier le processus de travail avec les API, et il prend en charge JSONPath dès le départ.

Voici comment Apidog peut vous aider à exploiter efficacement la puissance de JSONPath :

Tout d'abord, vous devrez envoyer des requêtes à vos API et afficher les réponses directement avec Apidog. Ensuite, vous pouvez utiliser l'interface fournie pour appliquer une requête JSONPath afin d'extraire les titres de tous les films d'action de la réponse.

Apidog's Post Processcers Page

Dans la capture d'écran ci-dessus, vous verrez que (1) nous envoyons une requête GET à notre serveur - j'ai créé un simple serveur express en utilisant les données JSON que nous avons obtenues ci-dessus comme réponse. Ensuite, je suis passé à l'onglet Post Processors (2) et j'ai ajouté un nouveau processus - Extract Variable (3).

En cliquant sur Extract Variable, la page ci-dessous s'affiche ;

Apidog's Extract JsonPath Config Page

Vous pouvez définir un nom de variable (1) si vous le souhaitez. Les variables sont utiles si vous souhaitez surveiller ou créer différentes API et que vous avez besoin d'un seul endroit pour gérer la configuration générale. Les variables ici sont comme des fichiers .env.

L'autre étape consiste à taper le JSONPath que vous souhaitez filtrer (2). Dans notre cas ici, nous voulons obtenir les titres des films dans le tableau d'action de notre JSON. Une fois que vous avez tapé le chemin actuel, cliquez sur le bouton fléché (3) pour ouvrir la page de réponse de la requête, comme indiqué ci-dessous.

jsonpath response apidog

Comme vous pouvez le voir dans la réponse ci-dessus, Apidog a filtré les titres des films dans le tableau d'action et nous les a affichés.

Si vous souhaitez l'essayer, assurez-vous de télécharger et d'installer Apidog et d'envoyer votre première requête avec celui-ci.

button

Conclusion

JSONPath est un outil inestimable pour naviguer et extraire des données des réponses JSON dans les API. Il simplifie le processus de travail avec des structures JSON complexes, ce qui rend votre flux de travail de développement plus efficace. En intégrant JSONPath avec des outils comme Apidog, vous pouvez facilement filtrer et récupérer les données exactes dont vous avez besoin, améliorant ainsi vos processus de test et de débogage d'API. Que vous extraiez des titres de films, que vous filtreriez des enregistrements spécifiques ou que vous validiez des réponses, JSONPath offre un moyen clair et concis de gérer les données JSON. Essayez-le dans votre prochain projet et découvrez la simplicité simplifiée qu'il apporte.

Explore more

Comment utiliser Deepseek R1 en local avec Cursor

Comment utiliser Deepseek R1 en local avec Cursor

Apprenez à configurer DeepSeek R1 local avec Cursor IDE pour une aide au codage IA privée et économique.

4 June 2025

Comment exécuter Gemma 3n sur Android ?

Comment exécuter Gemma 3n sur Android ?

Apprenez à installer et exécuter Gemma 3n sur Android via Google AI Edge Gallery.

3 June 2025

Comment utiliser Claude Code avec GitHub Actions

Comment utiliser Claude Code avec GitHub Actions

Découvrez Claude Code avec GitHub Actions : revues de code, corrections de bugs, implémentation de fonctionnalités. Tutoriel pour développeurs.

29 May 2025

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API