Fish Shell:
Lavorare con JSON

Come fare:

Fish Shell, di per sé, non dispone di utilità integrate per l’analisi e la generazione di JSON. Tuttavia, si integra perfettamente con strumenti di terze parti come jq per l’elaborazione di JSON. jq è un processore di JSON da linea di comando potente e versatile che ti consente di dividere, filtrare, mappare e trasformare dati strutturati con un linguaggio semplice ed espressivo.

Analizzare JSON con jq

Per analizzare un file JSON ed estrarre dati utilizzando jq:

# Supponendo di avere un file JSON denominato 'data.json' con contenuto: {"name":"Fish Shell","version":"3.4.0"}
cat data.json | jq '.name'
# Esempio di output
"Fish Shell"

Generare JSON con jq

Creare contenuto JSON a partire da variabili o output della shell:

# Creare oggetto JSON dalle variabili
set name "Fish Shell"
set version "3.4.0"
jq -n --arg name "$name" --arg version "$version" '{name: $name, version: $version}'
# Esempio di output
{
  "name": "Fish Shell",
  "version": "3.4.0"
}

Filtrare Collezioni JSON

Supponiamo di avere un array JSON di oggetti in un file denominato versions.json:

[
  {"version": "3.1.2", "stable": true},
  {"version": "3.2.0", "stable": false},
  {"version": "3.4.0", "stable": true}
]

Per filtrare questo array solo per le versioni stabili:

cat versions.json | jq '.[] | select(.stable == true) | .version'
# Esempio di output
"3.1.2"
"3.4.0"

Gli esempi forniti dimostrano la potenza dell’integrazione di jq con Fish Shell per le operazioni su JSON. Sfruttare tali strumenti arricchisce l’esperienza della shell, rendendola un ambiente formidabile per la gestione dei formati di dati moderni.