Aller au contenu
🛠️ToolsShed

JSONPath Tester

Tester les expressions JSONPath contre des données JSON.

À propos de cet outil

JSONPath est un langage de requête pour les données JSON, similaire à XPath pour XML. L'outil de test JSONPath aide les développeurs et les analystes de données à valider et déboguer les expressions JSONPath en les testant directement sur des documents JSON d'exemple. Cet outil élimine toute conjecture lors du travail avec des API, des fichiers de configuration ou des structures de données complexes nécessitant une navigation précise des chemins.

Pour utiliser l'outil, collez vos données JSON dans le champ d'entrée et saisissez une expression JSONPath dans le champ d'expression. À mesure que vous tapez, le testeur affiche immédiatement les éléments qui correspondent à votre expression, ainsi que leurs valeurs. Les motifs courants incluent $. pour l'accès racine, .property pour les propriétés d'objet, [0] pour les indices de tableau et [*] pour sélectionner tous les éléments du tableau. Les résultats affichent tous les chemins et valeurs correspondants, ce qui facilite l'affinage de votre requête jusqu'à extraire exactement ce dont vous avez besoin.

Questions Fréquentes

Implémentation du Code

# pip install jsonpath-ng
from jsonpath_ng import parse

data = {
    "store": {
        "book": [
            {"title": "Moby Dick", "author": "Herman Melville", "price": 8.99},
            {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "price": 12.99},
            {"title": "1984", "author": "George Orwell", "price": 6.99}
        ]
    }
}

# Match all book titles
expr = parse("$.store.book[*].title")
titles = [match.value for match in expr.find(data)]
print(titles)
# ['Moby Dick', 'The Great Gatsby', '1984']

# Filter books cheaper than $10
expr2 = parse("$.store.book[?(@.price < 10)]")
cheap_books = [match.value for match in expr2.find(data)]
print(cheap_books)
# [{'title': 'Moby Dick', ...}, {'title': '1984', ...}]

# Recursive descent: find all authors anywhere in the document
expr3 = parse("$..author")
authors = [match.value for match in expr3.find(data)]
print(authors)
# ['Herman Melville', 'F. Scott Fitzgerald', 'George Orwell']

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.