[[Vorlage(Getestet,focal, jammy)]] {{{#!vorlage Wissen [:Packprogramme: Archive entpacken] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [github:tomnomnom/gron:gron] ist ein Kommandozeilenprogramm, welches [https://www.json.org JSON] {en} 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 [github:tomnomnom/gron/releases: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. [[Vorlage(Fremd, Software)]] = Benutzung = Die allgemeine Syntax von gron lautet[2]: {{{#!vorlage Befehl 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 {{{#!code json { "for": "bar", "spam": [1, 2, 3] } }}} ergibt der Aufruf {{{#!vorlage Befehl gron daten.json }}} die folgende Ausgabe: {{{#!code 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. {{{#!vorlage Befehl 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.: {{{#!vorlage Befehl echo '{"foo": "bar", "spam": [1 , 2, 3]}' | gron | grep "spam" | gron -u }}} ergibt: {{{#!code json { "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: {{{#!vorlage Befehl gron http://headers.jsontest.com }}} {{{#!code 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. ##tag: Shell, Go, JSON