Prova JSONPath

Esegui una query JSONPath nel browser. Per formattare il documento, usa il formattatore JSON

Che cosa si può interrogare

JSONPath estrae valori da un documento JSON. Questa pagina esegue un sottoinsieme pratico e restituisce ogni corrispondenza come JSON. Per riordinare il documento prima, usa il formattatore JSON.

Come si usa

  1. Incolla il JSON nella casella in alto e un percorso in JSONPath. Il percorso parte da $.
  2. Converti esegue la query. La riga accanto al percorso dice quante corrispondenze sono tornate.
  3. Mostra esempio carica {"store":{"book":[{"author":"Nigel","price":8},{"author":"Evelyn","price":12}],"bicycle":{"price":19}}} e il percorso $.store.book[*].author. Il risultato è un array JSON con Nigel e Evelyn, e il conto è 2.
  4. I pulsanti del percorso riempiono lo stesso documento se la casella è vuota. $.store.book[?(@.price<10)].author restituisce Nigel. $..price restituisce 8, 12 e 19.
  5. Cancella tutto svuota il documento, riporta il percorso a $ e cancella il conto. Copia risultato copia le corrispondenze JSON.

Percorsi che questa pagina accetta

$ è la radice. .key e ['key'] leggono una proprietà. [n] legge un indice, e un indice negativo conta dalla fine. [*] legge ogni elemento o proprietà. [start:end:step] taglia un array, senza includere la fine. [0,2] sceglie quegli indici. ..key percorre ogni oggetto annidato e raccoglie quella chiave.

Un filtro ha la forma [?(@.price<10)] o [?(@.author=='Nigel')]. I confronti sono ==, !=, <, >, <= e >=. Il testo si confronta così com'è. L'ordine vale per i numeri. Il filtro gira su un array. Un percorso sconosciuto, o un JSON che non si legge, è un errore. Zero corrispondenze è un array vuoto valido.

Dove si usa

  • Tirare fuori un campo da ogni oggetto di un array.
  • Tenere le righe il cui prezzo è sotto un numero.
  • Trovare ogni prezzo, anche quelli annidati in oggetti diversi.

Domande

Perché il risultato è un array se c'è un solo autore?

Ogni query restituisce l'elenco delle corrispondenze, quindi un solo colpo resta un array di un elemento.

Funziona un'espressione di script?

I filtri sono un confronto su @ e sui suoi campi. Un'altra sintassi di script si ferma con un errore.