Veröffentlicht am: 04.10.2014
Von: JLusiardi
In Kategorie: Software
Schlagwörter: JSON Kommandozeile Linux REST
Viele Web-Dienste basieren auf REST und liefern die Resultate häufig als JSON. Das auf der Kommandozeile auszuwerten gestaltet sich wegen der verschachtelten Struktur als etwas schwerer.
EIne Lösung stellt jq dar, jq erlaubt das gezielte Abfragen der einzelnen Einträge in einem JSON String.
Beispiel:
docker inspect openvpn_server | jq '.[0].NetworkSettings.Ports | keys '
inspiziert zunächst einen Docker-Container, fragt die Ports aus den Networksettings ab und extrahiert die Keys des Objects. Das Ergebnis ist:
[
"1194/tcp",
"1194/udp"
]
Ein Tutorial bietet das Projekt hier: http://stedolan.github.io/jq/tutorial/. Das ausführliche Handbuch hier: http://stedolan.github.io/jq/manual/.
Update
curl -s http://api.bitcoincharts.com/v1/markets.json | jq '.[] | select(.symbol == "btcdeEUR" )'
fragt eine JSON-Datei (mit Bitcoin Informationen) und extrahiert aus dem Array das Objekt, welches den Wert btcdeEUR als symbol besitzt.