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.
Esegue filtri jq su un documento nel browser — un vero interprete per la grammatica di jq 1.7 e non quattro operazioni su stringhe, così le pipe, `reduce`, `def`, il destructuring e gli operatori di aggiornamento si comportano tutti come da riga di comando. Il comando di shell equivalente viene stampato sotto il filtro.
Filtro
jq '.orders[] | select(.status == "shipped") | {id, customer}' data.json
JSON in ingresso
Trascina un file .json
Letto solo in questa scheda. Non viene caricato niente.
1 uscita
Uscite
1
Tempo
<1 ms
Tipi
object
Un interprete della grammatica di jq 1.7, scritto qui. Supporta i percorsi (.a[0].b, .., ?), |·,·//, aritmetica, confronti, and/or/not, interpolazione di stringhe, if, try, reduce, foreach, as (destrutturazione compresa), def, aggiornamenti come |=·+=, formati come @base64·@csv, e le 180 funzioni integrate qui sotto. I test sono gli esempi del manuale di jq.
Non supportato: input·inputs (c’è un solo documento), $ENV·env (vuoto), label·break, --stream, gli array annidati in @sh, i formati diversi da ISO 8601 in strptime, la modalità stream di getpath e i moduli (import). Le espressioni regolari girano sul motore del browser e non sull’Oniguruma di jq, quindi \p{L} e i gruppi con nome funzionano, e attorno al lookbehind ci possono essere differenze sottili.
Se ti serve solo un percorso, forse è più semplice il Banco di prova per JSONPath.
Come si usa
Incollare il documento
Un valore JSON, oppure diversi di seguito: lo strumento li legge come un flusso di input jq, e il conteggio compare nel titolo del pannello.
Scrivere il filtro, o prenderne uno dalla fila di esempi
I pulsanti coprono le forme che capitano: select, map, group_by, interpolazione di stringhe, reduce e gli operatori di aggiornamento. Passandoci sopra si legge che cosa fa ciascuno.
Impostare i flag che si userebbero da riga di comando
`-c` per una riga per ogni output, `-S` per ordinare le chiavi, `-r` per le stringhe senza virgolette, `-s` per raccogliere più input in un solo array. La riga di comando in fondo si aggiorna con essi.
Copiare il comando, non solo l’uscita
La riga `jq …` generata ha il quoting giusto per una shell POSIX, quindi può finire dritta in uno script o in una pipeline.
Domande frequenti
È davvero jq?
È un interprete indipendente per la grammatica di jq, provato sugli esempi del manuale di jq stesso. Copre il linguaggio e le funzioni predefinite più comuni; non è una compilazione di jq in sé, quindi tutto ciò che dipende dalle sue interiora in C sarà diverso.
Perché `input` non funziona?
Perché qui c’è un documento solo, non un flusso da cui un filtro possa tirarne altri. `input`, `inputs`, `$ENV`, `env`, `label`/`break`, `--stream` e i moduli sono tutti elencati nella pagina come non supportati, invece di fallire in modo misterioso.
La mia espressione regolare si comporta diversamente da quella di jq.
jq usa Oniguruma; qui si usa il motore del browser. In pratica `\p{L}` e i gruppi denominati funzionano in entrambi, e le differenze saltano fuori intorno al lookbehind e a qualche escape di classe di caratteri. Se un pattern conta, va provato sulla macchina che lo eseguirà.
Si è fermato a 5.000 output.
È un limite voluto, insieme a un limite di passi. `..` su un documento grande produce un’uscita enorme, e un filtro con una ricorsione fuori controllo bloccherebbe altrimenti la scheda. Meglio restringere il filtro, oppure eseguirlo da riga di comando dove si può mandare in pipe a `head`.
Può ricevere da
Convertitore JSON Lines
JSON Lines Converter
Converte fra NDJSON e un array JSON, e segnala per numero ogni riga che non si analizza invece di fermare la conversione.
Banco di prova per JSONPath
JSONPath Tester
Esegue un’espressione JSONPath su un documento ed evidenzia i nodi corrispondenti mentre scrivi.
Formattatore e validatore JSON
JSON Formatter & Validator
Formatta, minifica e valida il JSON, indicando riga e colonna esatte di un errore di sintassi.
Formattatore e validatore YAML
YAML Formatter & Validator
Riporta il YAML a un’indentazione coerente, lo valida e segnala gli errori di tabulazione e di ancora che rompono i parser.
Dopo
Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.
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.
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 JSONPath
JSONPath Tester
Esegue un’espressione JSONPath su un documento ed evidenzia i nodi corrispondenti mentre scrivi.
Convertitore JSON Lines
JSON Lines Converter
Converte fra NDJSON e un array JSON, e segnala per numero ogni riga che non si analizza invece di fermare la conversione.
Codificatore e decodificatore Base64
Base64 Encoder & Decoder
Codifica e decodifica in Base64 e Base64URL testo o file, trattando correttamente l’UTF-8.
Da curl a codice
curl to Code
Converte un comando curl in fetch, axios, requests di Python, Go, PHP o PowerShell.