gron
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
gron ist ein Kommandozeilenprogramm, welches JSON 🇬🇧 in eine lineare Struktur umwandelt, primär um es "grepable", also mit grep durchsuchbar, zu machen. gron ist damit ein ideales Tool, um Datensätze einer JSON-Datei zu durchsuchen, ohne dabei deren Datenstruktur kennen und beachten zu müssen. Zum Abfragen von JSON-Daten, bei denen man die Datenstruktur kennt und miteinbeziehen will, nutzt man besser Werkzeuge wie jq.
gron ist in Go geschrieben und ist außer für Linux auch für Windows, MacOS und FreeBSD verfügbar.
Installation¶
gron ist als fertig kompilierte Binärdatei verfügbar. Zum Installieren lädt man von der Releases Seite das für sein System passende Archiv herunter (z.B. gron-linux-amd64-0.7.1.tgz für die Version 0.7.1. für 64bit Linux Systeme), entpackt dieses[1] und kopiert die darin enthaltene Datei gron in ein Verzeichnis für ausführbare Programme, z.B. /home/BENUTZEER/.local/usr/bin oder /home/BENUTZEER/.local/bin (Ubuntu 20.04). Danach ist gron einsatzbereit.
Hinweis!
Fremdsoftware kann das System gefährden.
Benutzung¶
Die allgemeine Syntax von gron lautet[2]:
gron [OPTION(EN)] DATEI_ODER_URL
Wird keine Datei oder URL angegeben, liest das Programm von der Standardeingabe.
Hat man z.B. eine JSON-Datei mit dem folgenden Inhalt
1 2 3 4 | { "for": "bar", "spam": [1, 2, 3] } |
ergibt der Aufruf
gron daten.json
die folgende Ausgabe:
1 2 3 4 5 6 | json = {}; json.foo = "bar"; json.spam = []; json.spam[0] = 1; json.spam[1] = 2; json.spam[2] = 3; |
Die Ausgabe kann man dann z.B. auch mit grep durchsuchen / filtern.
echo '{"foo": "bar", "spam": [1 , 2, 3]}' | gron | grep "spam" | grep 0
json.spam[0] = 1;
gron kann auch Daten direkt zurück nach JSON wandeln, indem man die Option -u
nutzt, wie z.B.:
echo '{"foo": "bar", "spam": [1 , 2, 3]}' | gron | grep "spam" | gron -u
ergibt:
1 2 3 4 5 6 7 | { "spam": [ 1, 2, 3 ] } |
Wie weiter oben erwähnt kann gron auch direkt auch URLs angewendet werden, die JSON zurück liefern, wie im folgenden Beispiel gezeigt:
gron http://headers.jsontest.com
1 2 3 4 5 6 | json = {}; json.Accept = "application/json"; json.Host = "headers.jsontest.com"; json.traceparent = "00-04b0d4454c7227169deb44dc945a2208-91620c68a95602d1-00"; json["User-Agent"] = "gron/dev"; json["X-Cloud-Trace-Context"] = "04b0d4454c7227169deb44dc945a2208/10475949326874313425"; |
Deinstallation¶
Zum Entfernen des Programms löscht man einfach die Datei gron aus dem Verzeichnis, in das man sie entpackt hat.