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ührungszeichenDas -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"
doneMit 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
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 →Verwandte Snippets
Suchen & Ersetzen im Terminal mit sed
Einen Text in vielen Dateien austauschen, ohne jede von Hand zu öffnen – das erledigt sed in einer Zeile. Ich zeige dir das Grundmuster, wie du es sicher in mehreren Dateien anwendest und warum du vorher immer erst ohne -i testest.
REST-APIs im Terminal testen mit curl
Bevor ich eine API in die App einbaue, teste ich sie im Terminal mit curl – GET, POST mit JSON, Header und Auth-Token. Ich zeige dir die Handvoll Flags, mit denen du jeden Endpunkt in Sekunden ausprobierst.
SSH bequemer machen – ~/.ssh/config und Port-Tunnel
Statt jedes Mal die lange ssh-Zeile zu tippen, hinterlegst du deine Server einmal in ~/.ssh/config. Und mit einem Port-Tunnel erreichst du eine entfernte Datenbank lokal, als liefe sie auf deinem Rechner. Zwei Dinge, die ich täglich nutze.