Tester JSONPath
Interroga JSON con espressioni JSONPath e vedi ogni match con il suo percorso
Su questo strumento
Testa espressioni JSONPath sul tuo JSON e vedi ogni match sia con il valore sia con il suo percorso concreto. Supporta la sintassi che copre l’uso quotidiano: notazione a punto e a parentesi, indici di array (anche negativi), wildcard, union (['a','b']) e discesa ricorsiva ($..price).
L’output del percorso per ogni match è la parte silenziosamente utile: interroga $..id su un documento profondo e ogni risultato ti dice esattamente dove vive ($.data.items[3].id), pronto da incollare nel codice. Trasforma "da qualche parte in questo blob" in un indirizzo esatto.
Le espressioni di filtro ([?(@.price < 10)]) non sono ancora implementate — lo strumento lo dichiara esplicitamente invece di restituire risultati sbagliati. Per l’estrazione strutturale, cioè la maggior parte dell’uso di JSONPath, funziona tutto.
Domande frequenti
- Qual è la differenza tra $.a.b e $..b?
- $.a.b segue un percorso esatto: la chiave a alla radice, poi la chiave b al suo interno. $..b (discesa ricorsiva) trova ogni b ovunque nel documento a qualsiasi profondità. La discesa ricorsiva è potente ma può sorprendere — matcha anche chiavi b annidate dentro cose a cui non avevi pensato.
- Come accedo a chiavi con spazi o trattini?
- Notazione a parentesi con virgolette: $['my key'] o $.data['content-type']. La notazione a punto funziona solo per chiavi che sono nomi simili a identificatori validi.
- Gli indici di array negativi funzionano?
- Sì — [-1] è l’ultimo elemento, [-2] il penultimo, secondo la convenzione resa popolare da Python e adottata dalla RFC 9535. [0] resta il primo elemento.
- JSONPath è standardizzato?
- Dal 2024 sì — la RFC 9535 ne definisce sintassi e semantica. Le implementazioni scritte prima differiscono nei casi limite (specialmente filtri e union), quindi la stessa espressione può comportarsi diversamente tra librerie; testa con l’implementazione con cui vai in produzione.