Parsen JSON in Bash
- Verwendung von
jq(leichtgewichtiges, flexibles Kommandozeilenwerkzeug zur JSON-Verarbeitung) zum Parsen von JSON in Bash - Verwendung von
grepzum Parsen von JSON in der Bash - Verwendung von
python3zum Parsen von JSON
Wir werden lernen, die JSON-Daten in Bash mit verschiedenen Techniken zu analysieren.
Wir werden für die Beispiele einen gefälschten JSON-Server verwenden.
Gefälschter JSON-Server - https://jsonplaceholder.typicode.com/posts
Verwendung von jq (leichtgewichtiges, flexibles Kommandozeilenwerkzeug zur JSON-Verarbeitung) zum Parsen von JSON in Bash
jq ist eine kleine plattformübergreifende Lösung zur Verwaltung von JSON-Daten auf kürzere, einfachere und mühelosere Weise.
Sie können jq von hier herunterladen.
Erhalten Sie hübschere formatierte JSON-Daten mit jq
Der Befehl jq . verschönert die json-Daten.
curl "https://jsonplaceholder.typicode.com/posts" | jq . Ausgabe:
[ { "userId": 1, "id": 1, "title": "delectus aut autem", "completed": false }, { "userId": 1, "id": 2, "title": "quis ut nam facilis et officia qui", "completed": false }, { "userId": 1, "id": 3, "title": "fugiat veniam minus", "completed": false } ... // remaining list of data ] Holen Sie sich die Werte bestimmter Felder aus JSON
Wir können Werte jedes bestimmten Feldes aus dem Array von JSON-Daten mit jq.[].field_name abrufen.
curl "https://jsonplaceholder.typicode.com/posts" | jq '.[].id' Ausgabe:
1 2 3 ... Rufen Sie den Titel des ersten Elements von JSON ab
curl "https://jsonplaceholder.typicode.com/posts" | jq '.[0].title' Ausgabe:
"delectus aut autem" Verwendung von grep zum Parsen von JSON in der Bash
Der Befehl grep kann auch zum Analysieren von JSON-Daten verwendet werden.
Beispiel-JSON-Datei:
[ { "id": 1, "name": "Andres Gustov", "email": "andddy7@gmail.com" }, { "id": 2, "name": "Anthony Marklov", "email": "antman33@gmail.com" } ] Beispielskript:
grep -o '"email": "[^"]*' examplejsonfile.json | grep -o '[^"]*$' Wir verwenden die Option -o, um nur Linien auszuwählen, die dem angegebenen Muster entsprechen. Dann geben wir das Muster '"email": "[^"]*' an, was bedeutet, dass wir alle Werte des Schlüssels email wollen. Anschließend übergeben wir die JSON-Datei, um nach dem Muster zu suchen. Schließlich leiten wir das Ergebnis mit einem weiteren grep -o-Befehl weiter, um alles außer dem Wert zu entfernen.
Ausgabe:
andddy7@gmail.com antman33@gmail.com Verwendung von python3 zum Parsen von JSON
Wir können auch das json-Modul von Python verwenden, um JSON-Operationen zu handhaben.
curl -s 'https://jsonplaceholder.typicode.com/posts' | \ python3 -c "import sys, json; print(json.load(sys.stdin))" Holen Sie sich einen bestimmten Feldwert
curl "https://jsonplaceholder.typicode.com/posts" | \ python3 -c "import sys, json; data=json.load(sys.stdin); print([d['id'] for d in data])" Ausgabe:
1 2 3 ... Ermitteln des Titels des ersten Elements
curl "https://jsonplaceholder.typicode.com/posts" | \ python3 -c "import sys, json; print(json.load(sys.stdin)[0]['title'])" Ausgabe:
"delectus aut autem"