jq nutzen: Installation, JSON-Felder filtern, Arrays mappen, mit curl pipen
jq installieren, JSON-Felder ziehen, Arrays mappen, API-Antworten per curl-Pipe kürzen.
Beim Debuggen von REST-APIs oder CI-Logs lässt jq Sie JSON filtern und umformen—ohne Megabytes in einen Editor zu kopieren. Installation auf macOS, Linux und Windows, Feldfilter, Array-Mapping und curl-Pipes für Leser von hereink.
Die Suche lautet jq mit JSON und curl-Pipe nutzen. Am Ende: installiertes jq, .key, map, verkürzte API-Ausgabe.
Was jq löst
Mehr als json.tool
Pythons json.tool formatiert nur. jq druckt .data.items[0].id, filtert Arrays, flacht verschachtelte Objekte ab.
Natürlicher curl-Partner
API-Bodies sind oft lang. | jq '.field' am Ende zeigt nur relevante Keys.
Version:
jq --version. Handbuch:jqlang.org, GitHubjqlang/jq.
jq auf drei OS installieren
- 1macOS (Homebrew)
brew install jq. Prüfen mitwhich jqundjq --version. - 2Linux
Debian/Ubuntu:
sudo apt update && sudo apt install jq. Fedora:sudo dnf install jq. Arch:sudo pacman -S jq. - 3Windows
winget install jqlang.jqoderchoco install jq. Neues Terminal, dannjq --version. - 4Erster Filter
echo '{"ok":true}' | jq .ok→true.
Keys filtern und Arrays mappen
echo '{"user":{"name":"Lin"}}' | jq .user.name
echo '{"items":[{"id":1},{"id":2}]}' | jq '.items[]'
echo '{"items":[{"id":1},{"id":2}]}' | jq '.items | map(.id)'Filter in einfachen Anführungszeichen. Punkt . = aktueller JSON-Wert.
Mit curl pipen
| Szenario | Beispiel | Hinweis |
|---|---|---|
| Öffentliche API | curl -s https://api.github.com/repos/jqlang/jq | jq '{name, stars: .stargazers_count}' | Nur nötige Felder |
| Rohtext | curl -s … | jq -r '.token' | -r ohne JSON-Anführungszeichen |
- Passt
- REST-Felder prüfen, JSON-Logzeilen filtern, CI-Metadaten parsen.
- Passt nicht
- Große JSON-Dateien vor Ort bearbeiten; Nicht-JSON-Text.
Was bedeutet parse error?
Eingabe ist kein gültiges JSON. Mit jq . allein testen.
Windows erkennt jq nicht?
Terminal neu starten. where jq.
Ist jq dasselbe wie yq?
Nein. jq ist für JSON. YAML braucht yq.
Dann Grenzen zeichnen
API-Form im Terminal, Grenzen auf einer Zeichnung. Raum erstellen.