JSONPath è un linguaggio di espressione per interrogare ed estrarre dati da strutture JSON. Ispirato a XPath per XML, fornisce un modo per attraversare la gerarchia JSON e localizzare campi o valori con precisione, simile a come le query SQL interrogano i database. È diventato uno strumento indispensabile per sviluppatori e tester che lavorano con API e dati JSON.
Il concetto fondamentale di JSONPath è l'uso di espressioni di percorso per navigare nella struttura ad albero JSON. Il simbolo radice $ rappresenta il punto di partenza, poi l'operatore punto . accede a proprietà figlie, e le parentesi quadre [] accedono a elementi di array per posizione. Ad esempio, l'espressione $.store.book[0].title parte dalla radice, accede all'oggetto store, poi all'array book, prende il primo elemento e restituisce il valore del campo title.
Per gli array, JSONPath supporta diverse modalità di accesso: indici numerici semplici come [0] per il primo elemento, indici negativi [-1] per l'ultimo elemento senza conoscerne la lunghezza, jolly * per corrispondere a tutti gli elementi, e sintassi di slice [start:end] per estrarre intervalli di elementi consecutivi. Queste funzionalità coprono la grande maggioranza delle esigenze di accesso agli array negli scenari comuni.
L'operatore jolly * può essere usato per corrispondere a qualsiasi proprietà o elemento. Ad esempio $.store.* restituisce tutti i campi diretti in store, e $.store.book[*] restituisce tutti gli elementi nell'array book. Questo è particolarmente utile per attraversare tutti i figli senza conoscere nomi di campi espliciti.
La funzionalità di filtro ?() è un meccanismo potente per la selezione condizionale dei dati. Nei filtri, @ rappresenta il nodo corrente, e gli operatori di confronto ==/!=/>/</>=/<= possono essere usati per filtrare elementi per condizione. Ad esempio $.store.book[?(@.price < 10)] seleziona tutti i libri nell'array book il cui prezzo è inferiore a 10: molto pratico per estrarre rapidamente sottoinsiemi di dati che soddisfano criteri.
Questo strumento integra diverse funzionalità per migliorare l'esperienza d'uso: editor CodeMirror con evidenziazione sintassi professionale, doppia visualizzazione JSON/tabella per presentazione risultati adattabile, 8 esempi integrati per inizio rapido, riparazione automatica di errori JSON comuni, debounce di 400ms per esecuzione fluida durante la digitazione, scorciatoie da tastiera per efficienza e 200 voci di cronologia locale per recuperare espressioni precedenti.
Tutta l'elaborazione avviene localmente nel browser: JSON ed espressioni di query non vengono mai inviati a server, garantendo privacy assoluta di dati sensibili come chiavi API, token e informazioni aziendali. Questo è particolarmente importante per gli ingegneri di test che elaborano risposte API di produzione con dati sensibili.
Questo strumento implementa un sottoinsieme di sintassi JSONPath accuratamente selezionato che copre il 90% degli scenari di uso quotidiano: accesso a proprietà, indici di array (positivi/negativi), jolly *, slice [start:end] e filtri semplici ?() con operatori di confronto. Funzionalità avanzate come discesa ricorsiva (..), espressioni di script complesse e combinazioni di più condizioni non sono supportate in questa versione, privilegiando stabilità e semplicità per gli usi comuni.