MWCodebymw.de ↗
Terminal

JSON im Terminal verarbeiten mit jq

APIs antworten mit JSON – und dann? Mit jq filterst, formatierst und transformierst du JSON direkt im Terminal, ganz ohne Wegwerf-Skript. Ich zeige dir die Handvoll jq-Ausdrücke, die ich beim Debuggen von APIs jeden Tag brauche.

Wenn ich eine API teste, kommt als Antwort meist ein Klumpen JSON zurück. Ihn im Terminal von Hand zu lesen, ist mühsam. jq ist ein kleines Kommandozeilen-Werkzeug, das JSON versteht – filtern, umformen, hübsch ausgeben, alles in einer Pipe. Installiert ist es schnell (apt install jq, brew install jq).

Hübsch ausgeben

Der einfachste Nutzen: JSON lesbar einrücken und einfärben.

curl -s https://api.example.com/user/1 | jq .

. ist der „Identitäts-Filter" – er gibt alles zurück, aber formatiert. -s bei curl unterdrückt die Fortschrittsanzeige, damit nur das JSON in die Pipe geht.

Ein Feld herausziehen

curl -s https://api.example.com/user/1 | jq '.name'
# "Mia"

curl -s https://api.example.com/user/1 | jq -r '.name'
# Mia        ← -r ("raw") entfernt die Anführungszeichen

Das -r ist wichtig, wenn du den Wert weiterverarbeitest (z. B. in eine Variable steckst) – sonst schleppst du die JSON-Quotes mit.

Durch Arrays iterieren und Felder auswählen

Angenommen, die API liefert eine Liste von Objekten:

# nur die Namen aller Einträge
curl -s https://api.example.com/users | jq -r '.[].name'

# pro Eintrag ein schlankes Objekt bauen
curl -s https://api.example.com/users | jq '.[] | {name, aktiv: .active}'

.[] packt das Array aus, | leitet jeden Eintrag an den nächsten Filter weiter – jq denkt in Pipes, genau wie die Shell.

Filtern mit select()

# nur aktive Nutzer, dann deren Namen
curl -s https://api.example.com/users | jq -r '.[] | select(.active == true) | .name'

In eine Bash-Schleife übergeben

Praktisch, um pro Eintrag etwas auszuführen:

curl -s https://api.example.com/users \
  | jq -r '.[].id' \
  | while read -r id; do
      echo "Verarbeite Nutzer $id"
    done

Mit diesen paar Ausdrücken – .feld, .[], select(), -r – deckst du 90 % des API-Debuggings im Terminal ab. Kein Copy-Paste in ein Online-Tool, keine Wegwerf-Skripte.

Wenn du eine App oder Website mit API-Anbindung planst, baue ich dir Backend und Schnittstellen sauber auf – meld dich über bymw.de.

Quellen

#Terminal#jq#JSON#CLI#curl

Du brauchst mehr als ein Snippet?

Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.

Projekt anfragen →