In letzter Zeit habe ich mich bei der Arbeit viel mit JSON beschäftigt und jq eingehend untersucht. Die bisherige Verwendung von jq erfolgte immer auf der Ebene der JSON-Datenformatierung. Tatsächlich sind seine Fähigkeiten weitaus größer Das.
Bei der Verarbeitung von JSON-Daten müssen wir häufig Filter-, Abfrage- und Bearbeitungsvorgänge in der Befehlszeile durchführen. jq ist ein leistungsstarkes Befehlszeilen-JSON-Verarbeitungstool, mit dem wir problemlos verschiedene Vorgänge an JSON-Daten durchführen können. In diesem Artikel werden die Grundkonzepte und allgemeinen Funktionen von jq kurz vorgestellt und einige praktische Beispiele bereitgestellt.
1. Einführung in jq
jq ist ein leichter und flexibler Befehlszeilen-JSON-Prozessor. Es ermöglicht Ihnen, JSON-Daten basierend auf Schlüsseln, Werten und Array-Indizes zu extrahieren, zu filtern und zu ändern. jq hat hauptsächlich die folgenden Funktionen:
-
Basierend auf Streaming-Verarbeitung, geeignet für große JSON-Datendateien.
-
Bietet einen umfangreichen Satz an Operatoren und Funktionen, kompatibel mit Unix-Pipes und E/A-Umleitung.
-
Unterstützt erweiterte Funktionen wie bedingte Filterung, Zeichenfolgenoperationen, mathematische Operationen und benutzerdefinierte Funktionen.
2. Installieren Sie jq
Auf den meisten Linux-Distributionen kann jq einfach über den Paketmanager installiert werden:
-
Auf Debian-basierten Distributionen:
sudo apt-get install jq
-
Auf RHEL-basierten Distributionen:
sudo yum install jq
-
Unter Arch Linux:
sudo pacman -S jq
-
Unter macOS kann es mit Homebrew installiert werden:
brew install jq
3. Allgemeine Verwendung von jq
Hier sind einige häufige Verwendungen von jq.
1. Attributwerte lesen
Um Eigenschaftswerte aus dem Eingabe-JSON-Objekt zu extrahieren, können Sie .
Operatoren verwenden.
Beispiel: Es gibt eine sample.json
Datei mit folgendem Namen:
{
"name": "Alice",
"age": 30,
"city": "New York"
}
Namen extrahieren:
cat sample.json | jq '.name'
Ausgabeergebnis:
"Alice"
2. Array-Elemente filtern
Um Array-Elemente zu filtern, können Sie []
Operatoren verwenden.
Beispiel: Es gibt eine students.json
Datei mit folgendem Namen:
[
{
"name": "Alice",
"age": 30,
"city": "New York"
},
{
"name": "Bob",
"age": 25,
"city": "San Francisco"
},
{
"name": "Charlie",
"age": 23,
"city": "Los Angeles"
}
]
Alle Namen extrahieren:
cat students.json | jq '.[].name'
Ausgabeergebnis:
"Alice"
"Bob"
"Charlie"
3. Wählen Sie bestimmte Array-Elemente aus
Wenn Sie bestimmte Elemente mit bestimmten Attributen zurückgeben möchten, können Sie Selektoren verwenden. Um beispielsweise Studierende über 25 Jahre auszuwählen:
cat students.json | jq '.[] | select(.age > 25)'
Ausgabeergebnis:
{
"name": "Alice",
"age": 30,
"city": "New York"
}
4. Arrays sortieren und eindeutig machen
Sie können die Funktionen sort
, sort_by()
und verwenden unique
, um Arrays zu bearbeiten.
Sortieren und deduplizieren Sie beispielsweise sample-array.json
Alter aus einer Datei:
[30, 20, 25, 30, 25, 20]
Duplikate sortieren und entfernen:
cat sample-array.json | jq 'unique | sort'
Ausgabeergebnis:
[
20,
25,
30
]
5. Daten ändern
Neben dem Filtern und Abfragen unterstützt jq auch das Erstellen und Ändern von Daten. Fügen Sie beispielsweise students.json
jedem Schüler das Attribut „isActive“ hinzu in:
cat students.json | jq '.[] | {name, age, city, isActive: true}'
Ausgabeergebnis:
{
"name": "Alice",
"age": 30,
"city": "New York",
"isActive": true
}
{
"name": "Bob",
"age": 25,
"city": "San Francisco",
"isActive": true
}
{
"name": "Charlie",
"age": 23,
"city": "Los Angeles",
"isActive": true
}
4. Zusammenfassung
jq ist ein sehr leistungsfähiges Befehlszeilen-JSON-Verarbeitungstool, das verschiedene Datenbearbeitungsfunktionen unterstützt und Ihnen dabei helfen kann, JSON-Daten bequemer und effizienter zu verarbeiten. In diesem Artikel werden einige gängige JQ-Anwendungsfälle aufgeführt, aber die Funktionen von JQ sind noch viel mehr. Weitere umfangreiche Funktionen finden Sie in der offiziellen Dokumentation ( zum Anzeigen klicken ). JQ-Kenntnisse tragen dazu bei, die Fähigkeit der Befehlszeile zur Verarbeitung von JSON-Daten zu verbessern und eine bequemere Datenquelle für andere Verarbeitungs- und Analysetools bereitzustellen.
Qt 6.6 ist offiziell veröffentlicht. Das Popup-Fenster auf der Lotterieseite der Gome App beleidigt seinen Gründer . Ubuntu 23.10 ist offiziell veröffentlicht. Sie können den Freitag genauso gut für ein Upgrade nutzen! RISC-V: wird nicht von einem einzelnen Unternehmen oder Land kontrolliert. Folge der Veröffentlichung von Ubuntu 23.10: ISO-Image wurde dringend „zurückgerufen“, da es Hassreden enthielt. Russische Unternehmen produzieren Computer und Server auf Basis von Loongson-Prozessoren. ChromeOS ist eine Linux-Distribution, die Google Desktop verwendet Umwelt 23-jähriger Doktorand behebt 22-jährigen „Geisterfehler“ in Firefox TiDB 7.4 veröffentlicht: offiziell kompatibel mit MySQL 8.0 Microsoft bringt Windows Terminal Canary-Version auf den MarktAutor: JD Logistics Zhang Tao
Quelle: JD Cloud Developer Community Ziyuanqishuo Tech Bitte geben Sie beim Nachdruck die Quelle an