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.

Installbrew / apt / winget
Filter.field · .[] · select
Pipecurl -s … | jq

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, GitHub jqlang/jq.

jq auf drei OS installieren

  1. 1
    macOS (Homebrew)

    brew install jq. Prüfen mit which jq und jq --version.

  2. 2
    Linux

    Debian/Ubuntu: sudo apt update && sudo apt install jq. Fedora: sudo dnf install jq. Arch: sudo pacman -S jq.

  3. 3
    Windows

    winget install jqlang.jq oder choco install jq. Neues Terminal, dann jq --version.

  4. 4
    Erster 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

SzenarioBeispielHinweis
Öffentliche APIcurl -s https://api.github.com/repos/jqlang/jq | jq '{name, stars: .stargazers_count}'Nur nötige Felder
Rohtextcurl -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.

Raum starten