Parsen JSON in Bash
-
Verwendung von
jq
(leichtgewichtiges, flexibles Kommandozeilenwerkzeug zur JSON-Verarbeitung) zum Parsen von JSON in Bash -
Verwendung von
grep
zum Parsen von JSON in der Bash -
Verwendung von
python3
zum 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"