Vai al contenuto
🛠️ToolsShed

JSONPath Tester

Testa le espressioni JSONPath rispetto ai dati JSON.

Informazioni sullo strumento

JSONPath è un linguaggio di query per i dati JSON, simile a XPath per XML. Lo strumento di test JSONPath aiuta sviluppatori e analisti di dati a convalidare e eseguire il debug delle espressioni JSONPath testando direttamente i documenti JSON di esempio. Questo strumento elimina le congetture quando si lavora con API, file di configurazione o strutture di dati complesse che richiedono una navigazione precisa dei percorsi.

Per utilizzare lo strumento, incolla i tuoi dati JSON nel campo di input e inserisci un'espressione JSONPath nel campo di espressione. Mentre digiti, il tester mostra immediatamente quali elementi corrispondono all'espressione, insieme ai loro valori. I pattern comuni includono $. per l'accesso radice, .property per le proprietà degli oggetti, [0] per gli indici degli array e [*] per selezionare tutti gli elementi dell'array. I risultati mostrano tutti i percorsi e i valori corrispondenti, rendendo facile perfezionare la query fino a estrarre esattamente ciò di cui hai bisogno.

Domande Frequenti

Implementazione del Codice

# 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.