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!