Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
json_query [Le 01/09/2023, 16:17] bcag2 [avec un serveur elasticsearch exécuter sur votre poste/serveur] |
json_query [Le 05/01/2025, 23:10] (Version actuelle) Amiralgaby correction et syntaxe d'option |
||
---|---|---|---|
Ligne 24: | Ligne 24: | ||
curl https://jsonplaceholder.typicode.com/users?_limit=2 | jq # curl va rendre du JSON que JQ va manipuler | curl https://jsonplaceholder.typicode.com/users?_limit=2 | jq # curl va rendre du JSON que JQ va manipuler | ||
- | On peut aussi ne récupérer qu'un attribut (dans le cas où seule une liste sans clé supérieure est retournée, sinon reportez-vous à l'exemple concret plus pas) : | + | On peut aussi ne récupérer qu'un attribut (dans le cas où seule une liste sans clé supérieure est retournée, sinon reportez-vous à l'exemple concret plus bas) : |
<code bash> | <code bash> | ||
jq '.[] | .mon_attribut' fichier.json | jq '.[] | .mon_attribut' fichier.json | ||
Ligne 39: | Ligne 39: | ||
</code> | </code> | ||
+ | si le résultat attendu ne comporte plus qu’une chaîne de caractère, l’option //%%--%%raw-output// (ou //-r//) permet de supprimer les guillemets autour : | ||
+ | <code bash>curl https://jsonplaceholder.typicode.com/users?_limit=1 | jq -r '.[] | "\(.name)"'</code> | ||
+ | ce qui peut-être utile si on récupère cette chaîne dans la variable d’un script bash | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | nom_depuis_api=$(curl https://jsonplaceholder.typicode.com/users?_limit=1 | jq -r '.[] | "\(.name)"') | ||
+ | </code> | ||
===== Exemples ===== | ===== Exemples ===== | ||
Les tests utilisent l'outil en ligne de commande [[:curl]] pour récupérer une réponse HTTP contenant du JSON à manipuler par **JQ**. | Les tests utilisent l'outil en ligne de commande [[:curl]] pour récupérer une réponse HTTP contenant du JSON à manipuler par **JQ**. | ||
==== avec le serveur de test JSONPlaceholder ==== | ==== avec le serveur de test JSONPlaceholder ==== | ||
- | Pour réaliser des tests, si vous ne disposer pas de serveur REST, vous pouvez utiliser le serveur [[https://jsonplaceholder.typicode.com|JSONPlaceholder]] qui propose de fausses données juste pour test,\\ | + | Pour réaliser des tests, si vous ne disposer pas de serveur REST, vous pouvez utiliser le serveur [[https://jsonplaceholder.typicode.com|JSONPlaceholder]] qui renvoi des données "placeholder".\\ |
ci-dessous récupération de 2 utilisateur (remarquer l'option //_limit=2// pour limiter le nombre de retour) : | ci-dessous récupération de 2 utilisateur (remarquer l'option //_limit=2// pour limiter le nombre de retour) : | ||
<code bash> | <code bash> | ||
Ligne 79: | Ligne 86: | ||
===== Voir aussi ===== | ===== Voir aussi ===== | ||
* (en) [[https://github.com/dominictarr/JSON.sh|parser JSON.sh]] pour "aplatir" une sortie JSON | * (en) [[https://github.com/dominictarr/JSON.sh|parser JSON.sh]] pour "aplatir" une sortie JSON | ||
+ | * (en) [[https://dev-tips.com/tools/using-jq-to-filter-json-output]] | ||
---- | ---- | ||
//Contributeur : [[:utilisateurs/bcag2]], [[:utilisateurs/Amiralgaby]]// | //Contributeur : [[:utilisateurs/bcag2]], [[:utilisateurs/Amiralgaby]]// |