Come usare jq per manipolare JSON dalla riga di comando su Linux, MacOS e Windows

18 mag 2023 2 min di lettura
Come usare jq per manipolare JSON dalla riga di comando su Linux, MacOS e Windows
Indice dei contenuti

Introduzione

jq è uno strumento da riga di comando che permette di manipolare, filtrare e formattare dati JSON. E' particolarmente utile quando si lavora con API che restituiscono dati in formato JSON. In questo tutorial, impareremo come installare e utilizzare jq su Linux, MacOS e Windows.

Installazione di jq

Linux

Su Linux, jq può essere installato attraverso il gestore di pacchetti del tuo sistema. Per esempio, su Ubuntu puoi usare:

sudo apt install jq

MacOS

Su MacOS, jq può essere installato attraverso Homebrew. Se non hai già Homebrew, puoi installarlo con:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Dopo aver installato Homebrew, puoi installare jq con brew install jq.

Windows

Su Windows, jq può essere installato attraverso Chocolatey, un gestore di pacchetti per Windows. Se non hai già Chocolatey, puoi installarlo seguendo le istruzioni fornite sul sito ufficiale di Chocolatey. Dopo aver installato Chocolatey, puoi installare jq con:

choco install jq

Utilizzo di base di jq

Dopo aver installato jq, puoi iniziare a utilizzarlo per manipolare dati JSON. jq prende un input JSON e un filtro jq, e produce un output JSON.

Ecco un esempio di utilizzo di jq:

echo '{"nome": "Mario", "cognome": "Rossi", "eta": 30}' | jq '.'

Questo comando stampa il JSON in un formato leggibile. Il filtro . in jq indica l'intero input JSON.

Ecco un altro esempio:

echo '{"nome": "Mario", "cognome": "Rossi", "eta": 30}' | jq '.nome'

Questo comando stampa il valore del campo "nome" del JSON.

Filtri più complessi con jq

jq supporta filtri molto più complessi. Ecco alcuni esempi:

  • .[]: Questo filtro seleziona tutti gli elementi di un array.
  • .campo[]: Questo filtro seleziona tutti gli elementi del campo "campo", supponendo che sia un array.
  • map(.campo): Questo filtro applica il filtro .campo a tutti gli elementi di un array.
  • select(.campo == "valore"): Questo filtro seleziona tutti gli oggetti che hanno "valore" come valore del campo "campo".

Ecco un esempio di utilizzo di questi filtri:

echo '[{"nome": "Mario", "cognome": "Rossi", "eta": 30}, {"nome": "Luigi", "cognome": "Verdi", "eta": 35}]' | jq 'map(.nome)'

Questo comando stampa un array con i nomi di tutte le persone nell'array di input.

Conclusione

jq è uno strumento molto potente per manipolare dati JSON dalla riga di comando. Ti permette di filtrare, trasformare e formattare dati JSON in modo semplice e intuitivo. Speriamo che questo tutorial ti abbia aiutato a iniziare ad utilizzare jq. Buon lavoro!

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.