jq - JSON in der Kommandozeile - Das große JSON Tutorial #7

Mit jq kannst du JSON in der Kommandozeile filtern und transformieren. Das praktische Werkzeug gibt es für Linux, Mac und Windows. Es läßt sich gut mit curl oder resty zu mächtigen Pipelines kombinieren.

Die von jq verwendete Abfragesprache ist an JSONPath angelehnt aber um einiges mächtiger. Neben einfachen Abfragen bietet jq u.a.:

  • Operatoren für Berechnungen
  • Funktionen
  • Variablen
  • Datentypen
  • Kontrollstrukturen
  • Datumsfunktionen
  • Reguläre Ausdrücke

Die im Beispiel verwendete JSON Datei kannst du hier herunterladen:

Speichere diese Datei auf deinem Rechner, wenn du die Kommandos im Tutorial selbst ausprobieren möchtest.

Beispiele

Hier findest du die Beispiele vom Video zum selber Ausprobieren.

cat wesen.json cat wesen.json | jq cat wesen.json | jq .wesen cat wesen.json | jq .wesen[0] cat wesen.json | jq '.wesen[0]' cat wesen.json | jq '.wesen[0:3]' cat wesen.json | jq '.wesen[:3]' cat wesen.json | jq '.wesen[]' cat wesen.json | jq '.wesen[].name' cat wesen.json | jq '[.wesen[].name] | join(", ")' cat wesen.json | jq '.wesen[] | .name |= ascii_upcase' cat wesen.json | jq '.wesen[] | .name |= ascii_upcase | .beschreibung = "abc"' cat wesen.json | jq '.wesen[] | .name |= ascii_upcase | .beschreibung = if .staerke > 5 then "gefährlich" else "harmlos" end' cat wesen.json | jq '.wesen[0] | values[]' cat wesen.json | jq '.wesen[0] | values[] | type' cat wesen.json | jq '.wesen[].staerke ' cat wesen.json | jq '.wesen[].staerke + 5' cat wesen.json | jq '[.wesen[].staerke]' cat wesen.json | jq '[.wesen[].staerke] | add' cat wesen.json | jq '[.wesen[].staerke] | add / length' cat wesen.json | jq '[.wesen[]]' cat wesen.json | jq '[.wesen[]] | group_by(.biotop)'

Links

  • jq
    JSON Prozessor für die Shell