Tester JSONPath
Incolla un documento JSON e digita un’espressione JSONPath come $..book[?(@.price<10)]. Il tester la valuta rispetto al documento e mostra ogni valore corrispondente, con il percorso esatto di ogni corrispondenza. Utile per convalidare la query che stai per incollare in uno script o in una specifica API (Postman, k6, JMeter parlano tutti JSONPath).
Come testare un'espressione JSONPath
-
1
Incolla il documento JSON
Qualsiasi JSON valido, oggetto, array, profondamente annidato.
-
2
Digita l'espressione
Inizia con `$` per la radice. Usa `.` per il figlio, `..` per la discesa ricorsiva, `[*]` per il jolly.
-
3
Guarda le corrispondenze in tempo reale
Ogni corrispondenza è mostrata con il suo valore e il JSONPath completo, evidenziato nel documento originale.
-
4
Copia i risultati
Copia le corrispondenze come un array JSON, oppure copia ciascun percorso individuale per l'uso nel codice a valle.
Riferimento alla sintassi JSONPath
| Espressione | Significato |
|---|---|
$ |
Elemento radice |
$.store |
Figlio di $ chiamato store |
$["store"] |
Stesso, forma con parentesi |
$..author |
Tutte le proprietà author a qualsiasi profondità |
$.store.book[*] |
Ogni libro nel negozio |
$.store.book[0] |
Primo libro |
$.store.book[-1:] |
Ultimo libro |
$.store.book[0:2] |
Primi due libri (slicing) |
$.store.book[?(@.isbn)] |
Libri con una proprietà isbn |
$.store.book[?(@.price < 10)] |
Libri più economici di 10 |
$.store.book[?(@.category == "fiction")] |
Libri di narrativa |
$..* |
Ogni valore, ovunque |
Espressioni di filtro
Le espressioni di filtro usano @ per riferirsi al nodo corrente. Il tester supporta gli operatori comuni ==, !=, <, >, <=, >=, &&, ||, e regex =~.
$.items[?(@.qty >= 10 && @.price < 50)]
Dialetti JSONPath
Ci sono diverse implementazioni di JSONPath con piccole incompatibilità. Questo tester segue la specifica originale di Goessner e i miglioramenti RFC 9535, che sono compatibili con:
- Jayway JsonPath (Java)
- jsonpath-plus (JavaScript)
- jsonpath-rw (Python)
- jq espressioni di percorso di base
Le funzionalità incompatibili (come le espressioni di script con JS arbitrario) sono segnalate nel pannello degli errori.
Quando JSONPath supera un parser completo
- Test di asserzioni:
pm.expect(jsonData).to.have.jsonPath(...)di Postman richiede un percorso. - Estrazione di configurazione: estrai un valore da una grande risposta API senza una libreria.
- Script di carico: k6, JMeter e Gatling supportano tutti JSONPath per i controlli.
- Kubernetes / AWS CLI: i flag
--querye--jsonpathti permettono di modellare l’output dalla riga di comando.
Errori comuni
- Usare
.su un array.$.users.0.nameè sbagliato; usa$.users[0].name. - Dimenticare
..per la profondità. Un percorso come$.namecorrisponde solo alnamedi primo livello; usa$..nameper tutti. - Confondere JSONPath con jq. jq è un superset con flusso di controllo e trasformazioni; JSONPath è puramente per l’estrazione.
- Ancoraggio regex.
=~ /foo/corrisponde a sottostringhe; usa/^foo$/per un comportamento di corrispondenza esatta.
Domande frequenti
JSONPath è un linguaggio di estrazione puro, seleziona, filtra, affetta. jq è un linguaggio completo di query / trasformazione con flusso di controllo, variabili e funzioni. Per un’estrazione semplice, JSONPath è più portatile; per trasformazioni, usa jq.
La specifica originale di Goessner più i miglioramenti RFC 9535, che corrispondono a Jayway JsonPath (Java) e jsonpath-plus (Node). Le estensioni specifiche del dialetto (espressioni di script con codice arbitrario) non sono supportate.
Sì. $..book[?(@.title =~ /^Harry.*/)] corrisponde a tutti i libri il cui titolo inizia con “Harry”. Usa ^ e $ per un comportamento di corrispondenza completa.
Sì. Sia il JSON che il valutatore JSONPath vivono nel tuo browser. Il tuo documento e le tue query non lasciano mai la scheda.
Strumenti correlati
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Riferimento ai caratteri HTML
Elenco ricercabile delle entità HTML, dei loro codici nominati e numerici, e copia con un clic per caratteri e simboli speciali.
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Riferimento scorciatoie da tastiera
Cerca le scorciatoie predefinite documentate di VS Code, Chrome e Bash con GNU Readline su macOS, Windows e Linux.
Promemoria Markdown
Riferimento pratico Markdown con anteprime reali ed esempi pronti da copiare per titoli, elenchi, tabelle, codice, link, immagini e sintassi GFM.
Formatter HTML
Formatta HTML localmente nel browser con rientri di due o quattro spazi. L’HTML non viene caricato né validato.
Strumento disponibile in altre lingue
- JSON Path Tester [ID]
- JSONPath テスター [JA]
- เครื่องมือทดสอบ JSON Path [TH]
- Công cụ kiểm thử JSONPath [VI]
- JSONPath-Tester [DE]
- JSONPath 테스터 [KO]
- Tester JSONPath [PL]
- Testador de JSONPath [PT]
- Probador de JSONPath [ES]
- JSONPath-testare [SV]
- أداة اختبار مسارات JSON (JSONPath) [AR]
- Testeur JSONPath [FR]
- JSON Path Tester [NL]
- JSONPath Tester [RU]
- JSONPath Test Aracı [TR]
- JSON路径测试器 [ZH]
- JSONPath Tester [EN]