Startseite > Textverarbeitung & Suche > jq

jq: JSON-Daten verarbeiten

jq ist ein leistungsstarkes Werkzeug zur effizienten Verarbeitung und Transformation von JSON-Daten in der Befehlszeile. Es wird verwendet, um JSON-Daten zu filtern, zu schneiden, zuzuordnen und zu transformieren, wodurch das Extrahieren gewünschter Informationen selbst aus komplexen JSON-Strukturen einfach wird. Es wird häufig in Kombination mit anderen Befehlen über die Pipe (|) verwendet.

Übersicht

jq empfängt JSON-Daten als Eingabe und verarbeitet und gibt sie auf verschiedene Weisen aus. Es kann einfache Wertextraktionen bis hin zu komplexen Array-/Objektmanipulationen durchführen und ist ein unverzichtbares Werkzeug für die Arbeit mit JSON in Skriptumgebungen.

Hauptfunktionen

  • JSON-Daten parsen und formatieren
  • Spezifische Felder extrahieren und filtern
  • Arrays und Objekte manipulieren
  • Daten transformieren und neu strukturieren

Wichtige Optionen

Eingabe-/Ausgabeformat

Filtern/Transformieren

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`jq` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Grundlegende JSON-Formatierung

echo '{"name": "Alice", "age": 30}' | jq .

Gibt die eingegebenen JSON-Daten in einem lesbaren Format aus.

Spezifisches Feld extrahieren

echo '{"name": "Bob", "age": 25}' | jq '.name'

Extrahiert den Wert des Feldes 'name' aus einem JSON-Objekt.

Feld aus Array-Elementen extrahieren

echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq '.[].name'

Extrahiert das Feld 'name' aus jedem Objekt innerhalb eines JSON-Arrays.

Raw-String-Ausgabe

echo '{"city": "Seoul"}' | jq -r '.city'

Gibt den extrahierten Zeichenkettenwert ohne Anführungszeichen aus.

Mehrere Felder auswählen und neues Objekt erstellen

echo '{"name": "Charlie", "age": 40, "email": "charlie@example.com"}' | jq '{name: .name, age: .age}'

Erstellt ein neues Objekt, das nur die Felder 'name' und 'age' aus einem bestehenden Objekt enthält.

Bedingtes Filtern

echo '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]' | jq '.[] | select(.age >= 30)'

Filtert nur Benutzer heraus, deren Alter 30 oder höher ist.

Array-Elemente transformieren (map)

echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq 'map(.name | ascii_upcase)'

Konvertiert den Namen jedes Benutzers in Großbuchstaben.


Gleiche Kategorie Befehle