Analyser JSON dans Bash
-
Utilisez
jq
(outil de traitement JSON léger et flexible en ligne de commande) pour analyser JSON dans Bash -
Utilisez
grep
pour analyser JSON dans Bash -
Utilisez
python3
pour analyser JSON
Nous apprendrons à analyser les données JSON dans bash en utilisant différentes techniques.
Nous utiliserons un faux serveur JSON pour les exemples.
Faux serveur JSON - https://jsonplaceholder.typicode.com/posts
Utilisez jq
(outil de traitement JSON léger et flexible en ligne de commande) pour analyser JSON dans Bash
jq
est une petite solution multiplateforme pour gérer les données JSON de manière plus courte, plus simple et sans effort.
Vous pouvez télécharger jq
à partir de ici.
Obtenez des données JSON formatées plus jolies à l’aide de jq
La commande jq .
embellit les données json.
curl "https://jsonplaceholder.typicode.com/posts" | jq .
Production :
[
{
"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
]
Obtenir les valeurs d’un champ spécifique à partir de JSON
Nous pouvons obtenir les valeurs de n’importe quel champ spécifique à partir du tableau de données JSON en utilisant jq.[].field_name
.
curl "https://jsonplaceholder.typicode.com/posts" | jq '.[].id'
Production :
1
2
3
...
Obtenir le titre du premier élément à partir de JSON
curl "https://jsonplaceholder.typicode.com/posts" | jq '.[0].title'
Production :
"delectus aut autem"
Utilisez grep
pour analyser JSON dans Bash
La commande grep
peut également être utilisée pour analyser les données JSON.
Exemple de fichier JSON :
[
{
"id": 1,
"name": "Andres Gustov",
"email": "andddy7@gmail.com"
},
{
"id": 2,
"name": "Anthony Marklov",
"email": "antman33@gmail.com"
}
]
Exemple de scénario :
grep -o '"email": "[^"]*' examplejsonfile.json | grep -o '[^"]*$'
Nous utilisons l’option -o
pour sélectionner uniquement les lignes qui correspondent au motif donné. Ensuite, nous spécifions le motif '"email": "[^"]*'
, ce qui signifie que nous voulons toutes les valeurs de la clé email
. Ensuite, nous passons le fichier JSON pour rechercher le modèle. Enfin, nous transmettons le résultat avec une autre commande grep -o
pour tout supprimer sauf la valeur.
Production :
andddy7@gmail.com
antman33@gmail.com
Utilisez python3
pour analyser JSON
On peut aussi utiliser le module json
de python pour gérer les opérations JSON.
curl -s 'https://jsonplaceholder.typicode.com/posts' | \
python3 -c "import sys, json; print(json.load(sys.stdin))"
Obtenir une valeur de champ spécifique
curl "https://jsonplaceholder.typicode.com/posts" | \
python3 -c "import sys, json; data=json.load(sys.stdin); print([d['id'] for d in data])"
Production :
1
2
3
...
Obtenir le titre du premier élément
curl "https://jsonplaceholder.typicode.com/posts" | \
python3 -c "import sys, json; print(json.load(sys.stdin)[0]['title'])"
Production :
"delectus aut autem"