Banco di prova per JSONPath
JSONPath Tester
Esegue un’espressione JSONPath su un documento ed evidenzia i nodi corrispondenti mentre scrivi.
Esegue una query JSONPath su un documento e mostra ogni nodo selezionato, con il percorso di ciascuno. Implementa l’RFC 9535 — lo standard del 2024 — invece di una delle vent’anni di implementazioni fra loro incompatibili che l’hanno preceduto, il che conta appena la query contiene un filtro.
Query
Dalla radice: ovunque più in basso, il membro «book»; poi i figli che passano il filtro; poi il membro «title».
Documento
Corrispondenze
I risultati compaiono qui mentre scrivi.
Segue la RFC 9535, lo standard del 2024, e non i vent’anni di implementazioni incompatibili che l’hanno preceduta. Le differenze che si sentono: un risultato è un elenco di nodi e tiene i duplicati, .. visita un nodo prima dei suoi figli, un membro assente è uguale solo a un altro membro assente, e confrontare con una query che potrebbe corrispondere a più nodi è un errore di sintassi invece che un’ipotesi. I pattern dentro match() e search() vengono passati al motore di espressioni regolari del browser stesso, che accetta più del dialetto I-Regexp prescritto dalla RFC.
Come si usa
Incollare il documento
Qualunque cosa si analizzi come JSON. La query gira in un worker, così un documento grande tiene la pagina reattiva mentre si scrive.
Scrivere la query, o partire da un esempio
I pulsanti sotto la casella coprono le forme che servono: un carattere jolly, una ricerca fra i discendenti, una fetta, un filtro, un’espressione regolare e una funzione. Sopra di essi compare una descrizione in parole semplici di che cosa significa la propria query.
Leggere le corrispondenze con i loro percorsi
Ogni risultato porta il percorso normalizzato che vi è arrivato, così si vede se una corrispondenza viene da dove ci si aspettava. La riga di statistica dice se la query è singolare — capace di selezionare al massimo un nodo — che è quello che sarebbe un JSON Pointer.
Domande frequenti
La mia query funziona in un altro strumento ma non qui.
Probabilmente una differenza dell’RFC 9535. Lo standard ha tolto cose che le implementazioni più vecchie permettevano: le espressioni script fra `()`, `$..[?(@.x)]` con la vecchia sintassi di filtro fra parentesi, e il confronto con una query che potrebbe corrispondere a più nodi — quest’ultimo ora è un errore di sintassi invece di un’ipotesi.
Perché lo stesso valore compare due volte?
Perché il risultato è una lista di nodi, non un insieme. `$..price` che raggiunge lo stesso nodo per due rami lo elenca due volte, per scelta: deduplicare perderebbe l’informazione su da dove viene ogni corrispondenza.
Le espressioni regolari in `match()` sono standard?
Non esattamente. L’RFC specifica I-Regexp, un dialetto piccolo; qui i pattern vengono passati al motore del browser, che ne accetta di più. Un pattern che funziona qui può essere rifiutato da un’implementazione stretta — vale la pena saperlo prima di metterne uno in produzione.
Può modificare il documento?
No: JSONPath seleziona, non scrive. Per modificare, i percorsi mostrati qui sono puntatori RFC 6901 e possono andare dritti in un JSON Patch, che è quello che produce lo strumento di diff JSON di questo sito.
Può ricevere da
Formattatore e validatore JSON
JSON Formatter & Validator
Formatta, minifica e valida il JSON, indicando riga e colonna esatte di un errore di sintassi.
Conversione JSON ⇄ XML
JSON ⇄ XML
Converte fra JSON e XML con un trattamento configurabile di attributi, array e nodi di testo.
Confronto fra due JSON
JSON Diff
Confronta due documenti JSON per struttura, ignorando l’ordine delle chiavi e riportando i percorsi aggiunti, tolti e cambiati.
Banco di prova per jq
jq Playground
Esegue filtri jq 1.7 sul JSON incollato dentro il browser, con un promemoria della sintassi, e ti consegna la riga di comando corrispondente.
Dopo
Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.
Banco di prova per jq
jq Playground
Esegue filtri jq 1.7 sul JSON incollato dentro il browser, con un promemoria della sintassi, e ti consegna la riga di comando corrispondente.
Confronto fra due JSON
JSON Diff
Confronta due documenti JSON per struttura, ignorando l’ordine delle chiavi e riportando i percorsi aggiunti, tolti e cambiati.
Formattatore e validatore JSON
JSON Formatter & Validator
Formatta, minifica e valida il JSON, indicando riga e colonna esatte di un errore di sintassi.
Banco di prova per XPath
XPath Tester
Valuta un’espressione XPath o un selettore CSS su XML o HTML ed elenca ogni nodo corrispondente.
Conversione JSON ⇄ CSV
JSON ⇄ CSV
Appiattisce il JSON annidato in colonne o ricostruisce gli oggetti da una tabella, con i nomi di colonna a percorso puntato.
Da JSON a TypeScript
JSON to TypeScript
Deduce interfacce o tipi TypeScript da un esempio JSON, unendo i campi facoltativi e le unioni.