Fish Shell:
Praca z JSON

Jak to zrobić:

Sam Fish Shell nie posiada wbudowanych narzędzi do analizowania i generowania JSON. Jednakże, bezproblemowo integruje się z narzędziami firm trzecich takimi jak jq do przetwarzania JSON. jq jest potężnym i wszechstronnym procesorem JSON-a działającym w wierszu poleceń, który pozwala ci kroić, filtrować, mapować i transformować strukturalne dane przy pomocy prostego i ekspresyjnego języka.

Analizowanie JSON z jq

Aby przeanalizować plik JSON i wyodrębnić dane za pomocą jq:

# Przyjmując, że masz plik JSON o nazwie 'data.json' z zawartością: {"name":"Fish Shell","version":"3.4.0"}
cat data.json | jq '.name'
# Przykładowe wyjście
"Fish Shell"

Generowanie JSON z jq

Tworzenie treści JSON z zmiennych w powłoce lub wyników:

# Utwórz obiekt JSON z zmiennych
set name "Fish Shell"
set version "3.4.0"
jq -n --arg name "$name" --arg version "$version" '{name: $name, version: $version}'
# Przykładowe wyjście
{
  "name": "Fish Shell",
  "version": "3.4.0"
}

Filtrowanie kolekcji JSON

Załóżmy, że mamy tablicę obiektów JSON w pliku o nazwie versions.json:

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

Aby przefiltrować tę tablicę tylko pod kątem stabilnych wersji:

cat versions.json | jq '.[] | select(.stable == true) | .version'
# Przykładowe wyjście
"3.1.2"
"3.4.0"

Przykłady te pokazują moc integracji jq z Fish Shell do operacji na JSON. Wykorzystanie takich narzędzi wzbogaca doświadczenie z korzystania z powłoki, czyniąc ją potężnym środowiskiem do obsługi nowoczesnych formatów danych.