Tester JSONPath
Incolla JSON e testa le espressioni JSONPath in modo interattivo. Visualizza i risultati corrispondenti in tempo reale, con percorsi di esempio per iniziare rapidamente.
Input
Output
Leggimi
Che cos'è JSONPath?
JSONPath è un linguaggio di query per JSON, simile a come XPath funziona per XML. Ti permette di navigare ed estrarre dati da una struttura JSON usando espressioni di percorso. Un'espressione JSONPath inizia con $, che rappresenta la radice del documento, e utilizza la notazione con punto (.key) o la notazione con parentesi (['key']) per attraversare gli oggetti, e [index] per accedere agli elementi dell'array.
JSONPath è stato originariamente descritto da Stefan Gössner nel 2007 ed è diventato uno standard ampiamente utilizzato in API, framework di test e pipeline di elaborazione dati. È supportato in molti linguaggi e strumenti, inclusi JavaScript, Python, Java e database come PostgreSQL e MySQL.
Descrizione dello strumento
Questo strumento ti permette di incollare qualsiasi documento JSON valido e scrivere un'espressione JSONPath per interrogarlo. I risultati vengono visualizzati istantaneamente mentre digiti, mostrando tutti i valori corrispondenti come un array JSON formattato. Il conteggio delle corrispondenze viene visualizzato separatamente in modo da poter verificare rapidamente quanti nodi sono stati selezionati.
Esempi
JSON di input:
{
"store": {
"book": [
{ "title": "Moby Dick", "price": 8.99, "category": "fiction" },
{ "title": "War and Peace", "price": 12.5, "category": "fiction" },
{
"title": "A Brief History of Time",
"price": 7.99,
"category": "science"
}
]
}
}| Espressione | Risultato |
|---|---|
$.store.book[*].title |
Tutti i titoli dei libri |
$.store.book[0] |
Primo oggetto libro |
$.store.book[?(@.price < 10)] |
Libri più economici di $10 |
$.store.book[?(@.category == "fiction")] |
Solo libri di narrativa |
$..price |
Tutti i valori di prezzo in qualsiasi punto |
Funzionalità
- Valutazione in tempo reale — i risultati si aggiornano mentre digiti l'espressione o modifichi il JSON
- Visualizza il conteggio delle corrispondenze in un campo dedicato
- Pulsante Copia nel campo dell'espressione per il riutilizzo rapido
- Pulsante Incolla per inserire rapidamente JSON o espressioni dagli appunti
- Segnalazione degli errori per JSON non valido o espressioni di percorso malformate
Come funziona
Le espressioni JSONPath vengono valutate rispetto al JSON analizzato utilizzando la libreria jsonpath-plus. Il simbolo $ si riferisce all'elemento radice. I nodi figlio sono accessibili con . o [], i caratteri jolly con *, la discesa ricorsiva con .. e i filtri con [?(...)]. Il risultato è sempre un array di valori corrispondenti, anche se viene trovata una sola corrispondenza.
Opzioni spiegate
| Sintassi | Significato |
|---|---|
$ |
Elemento radice |
.key o ['key'] |
Proprietà figlio |
[*] |
Tutti gli elementi dell'array |
[0] |
Primo elemento dell'array (indicizzato da zero) |
[-1] |
Ultimo elemento dell'array |
[0,2] |
Elementi agli indici 0 e 2 |
[0:2] |
Elementi dall'indice 0 a 1 (slice) |
..key |
Discesa ricorsiva — trova key a qualsiasi profondità |
[?(@.price > 5)] |
Filtro — elementi dove price è maggiore di 5 |
@ |
Nodo corrente (utilizzato all'interno di espressioni di filtro) |
Casi d'uso
- Sviluppo di API — verifica che un selettore JSONPath utilizzato in un client REST, suite di test o strumento di mappatura dati estragga i campi previsti da una risposta API
- Trasformazione dati — identifica quali valori estrarre da payload JSON annidati prima di scrivere uno script di trasformazione
- Imparare JSONPath — sperimenta la sintassi del percorso in modo interattivo per comprendere come operatori come
..,[*]e[?()]si comportano su dati reali
Suggerimenti
- Usa
$..*per ottenere ogni singolo valore nell'intero documento — utile per esplorare strutture JSON sconosciute. - Le espressioni di filtro supportano confronti (
==,!=,<,>,<=,>=) e possono fare riferimento a proprietà annidate:[?(@.author.name == "Rees")]. - Per trovare una proprietà indipendentemente dalla sua profondità, usa la discesa ricorsiva
..:$..titletrova tutti i campititlein qualsiasi punto del documento.