ForHosting KIT · Dati e file

Interroghi JSON con espressioni in stile JSONPath

Estragga valori da un documento di dati con un percorso breve: $.store.books[*].title restituisce North e South, un titolo per libro e nell’ordine in cui compaiono. Un percorso senza risultati dà un elenco vuoto, non un errore. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Percorso
$.store.books[*].title
Ottiene
Corrispondenze
North, South

La sintassi supportata comprende proprietà dirette, proprietà tra virgolette, indici di array e wildcard, mentre rifiuta intenzionalmente filtri, discesa ricorsiva, intervalli, unioni ed espressioni eseguibili. Questo contratto ristretto rende i risultati prevedibili per debug, test, ispezione dei dati e automazioni leggere.

Costruisca un percorso dall’inizio del documento

Ogni espressione inizia con <code>$</code>, che rappresenta l’intero documento analizzato. Aggiunga un punto seguito da un nome di proprietà semplice, come <code>$.customer.name</code>, per scendere negli oggetti. Nella notazione puntata, i nomi devono iniziare con una lettera o un trattino basso e possono poi contenere lettere, cifre o trattini bassi.

Quando una chiave contiene uno spazio, un trattino, un punto o un altro carattere non conforme alla regola, usi un passaggio tra parentesi e virgolette, per esempio <code>$['display-name']</code> oppure <code>$["shipping address"]</code>. Sono ammesse virgolette singole e doppie; è possibile proteggere la virgoletta corrispondente o una barra inversa. I percorsi vengono valutati da sinistra a destra e una proprietà assente non produce valori per quel ramo.

La risposta contiene sempre un array <code>matches</code>, anche quando il percorso individua un solo scalare, così Lei può gestire risultati singoli, wildcard e risultati vuoti con la stessa struttura.

Selezioni elementi degli array ed espanda le wildcard

Inserisca un intero non negativo tra parentesi per selezionare una posizione dell’array, come <code>$.orders[0].id</code>. Gli indici partono da zero, quindi il primo elemento è zero e una posizione oltre la lunghezza non genera corrispondenze. Usi <code>[*]</code> per espandere tutti gli elementi, poi prosegua nel percorso per leggere un campo da ciascuno.

Per esempio, <code>$.store.books[*].title</code> restituisce il titolo di ogni oggetto libro che possiede tale proprietà. È supportata anche la forma puntata <code>.*</code>. Le wildcard possono essere combinate con successivi passaggi di proprietà o indice, mentre i rami senza corrispondenze vengono esclusi senza influenzare gli altri.

L’ordine finale segue quindi il documento di origine e la sequenza di attraversamento.

Riconosca la sintassi esclusa intenzionalmente

Questa capacità implementa un piccolo linguaggio in stile JSONPath, non tutti i dialetti disponibili. Rifiuta la discesa ricorsiva come <code>$..name</code>, i filtri come <code>$[?( @.price &lt; 10)]</code>, gli intervalli, le unioni, gli indici negativi, le espressioni di script e le funzioni.

La scelta è intenzionale: tali funzioni differiscono tra librerie e alcune consentono valutazioni inadatte a un parser deterministico. Al contrario, un percorso sintatticamente valido che non trova nulla non è un errore: restituisce un array <code>matches</code> vuoto. L’automazione può così distinguere istruzioni malformate da interrogazioni valide su dati facoltativi assenti.

Per un’integrazione affidabile, convalidi i percorsi durante lo sviluppo, rispetti il sottoinsieme documentato e stabilisca se un insieme vuoto sia accettabile nel Suo flusso.

Quali funzionalità JSONPath sono supportate?

Il sottoinsieme include il simbolo radice, proprietà puntate, proprietà tra parentesi e virgolette, indici non negativi e wildcard.

Che cosa accade se un percorso non trova corrispondenze?

La richiesta riesce e restituisce un array matches vuoto. Un dato assente è diverso da una sintassi di percorso non valida.

Posso usare filtri o discesa ricorsiva?

No. Filtri, discesa ricorsiva, intervalli, unioni, script, funzioni e indici negativi vengono rifiutati.

Come leggo una chiave con spazi o trattini?

Scriva il nome tra virgolette dentro parentesi quadre, per esempio $['display-name'] o $["shipping address"]. Il punto semplice vale solo per nomi che iniziano con una lettera o un trattino basso e proseguono con lettere, cifre o trattini bassi.

Le posizioni di un elenco partono da 0 o da 1?

Da 0: $.orders[0].id legge il primo ordine. Una posizione oltre la fine dell’elenco non produce risultati e nemmeno un errore, e le posizioni negative non sono accettate.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/dev2/json-path-query

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/dev2/json-path-query \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"json":"{\"store\":{\"books\":[{\"title\":\"North\",\"price\":12},{\"title\":\"South\",\"price\":18}]}}","path":"$.store.books[*].title"}'
{
  "json": "{\"store\":{\"books\":[{\"title\":\"North\",\"price\":12},{\"title\":\"South\",\"price\":18}]}}",
  "path": "$.store.books[*].title"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.json_path_query",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Questo strumento di interrogazione in stile JSONPath estrae valori da un documento JSON senza richiedere che Lei scriva uno script, installi dipendenze o configuri la riga di comando. Incolli un JSON valido, inserisca un percorso che inizi con il simbolo radice e riceverà un elenco ordinato di corrispondenze.

Costruisca un percorso dalla radice JSON

L’espressione radice da sola è valida e restituisce l’intero valore JSON come unica corrispondenza.

Selezioni elementi degli array ed espanda le wildcard

Su un oggetto, una wildcard visita i valori nell’ordine standard delle proprietà JSON; su un array, visita gli elementi dal primo all’ultimo. I valori mantengono i tipi JSON nativi: stringhe, numeri, oggetti, array, booleani e valori nulli vengono restituiti senza conversione.

Riconosca la sintassi esclusa intenzionalmente

Le espressioni non supportate restituiscono un errore <code>invalid_input</code> con un messaggio che identifica il problema di sintassi; non vengono mai trattate come percorsi parzialmente validi. Un JSON non valido viene rifiutato separatamente prima dell’attraversamento. Il prezzo API parte da $0.002 per richiesta e il browser può usare la stessa logica deterministica.

Ispezionare una risposta API

Estragga uno stato, un identificatore o un elenco di valori annidato in profondità durante il debug di una risposta.

Creare asserzioni di test stabili

Selezioni soltanto i campi necessari a un test di regressione anziché confrontare un intero documento variabile.

Preparare automazioni leggere

Prelevi valori da un JSON di configurazione, webhook o esportazione prima di passarli al successivo passaggio deterministico.

I valori trovati vengono convertiti in testo?

No. Mantengono i tipi JSON, inclusi numeri, booleani, valori nulli, oggetti e array.

Quanto costa una richiesta API?

Il prezzo API parte da $0.002 per richiesta. La capacità può anche essere eseguita gratuitamente nel browser.

Leggi la documentazione completa del KIT →