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 | ||
|
utilisateurs:bcag2:json_query [Le 11/10/2022, 11:40] bcag2 ajout srce et contrib |
— (Version actuelle) | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>console}} | ||
| - | ---- | ||
| - | |||
| - | ====== JSON Query (jq) ====== | ||
| - | |||
| - | Cette commande est utilisée en [[:tutoriel/console_ligne_de_commande|ligne de commande]] pour mettre en forme du code [[wpfr>JavaScript_Object_Notation|JSON]] et n'afficher qu'une partie des enregistrements et/ou attributs | ||
| - | |||
| - | ===== Installation ===== | ||
| - | |||
| - | Installer avec les [[:sudo|droits d'administration]] le paquet jq | ||
| - | <code bash> | ||
| - | apt install jq | ||
| - | </code> | ||
| - | |||
| - | ===== Utilisation ===== | ||
| - | On peut l'utiliser simplement : | ||
| - | <code bash> | ||
| - | curl service:<port>/<table_ou_vue> | jq | ||
| - | </code> | ||
| - | |||
| - | 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) : | ||
| - | <code bash> | ||
| - | curl service:<port>/<table_ou_vue> | jq '.[] | .mon_attribut' | ||
| - | </code> | ||
| - | |||
| - | Et on peut ne prendre que certains enregistrements, par exemple, si vous avez 10 enregistrements, pour voir les données que du 3ème et 4ème : | ||
| - | <code bash> | ||
| - | curl service:<port>/<table_ou_vue> | jq '.[3:5]' | ||
| - | </code> | ||
| - | |||
| - | ou des deux derniers : | ||
| - | <code bash> | ||
| - | curl service:<port>/<table_ou_vue> | jq '.[-2:]' | ||
| - | </code> | ||
| - | |||
| - | Exemple pour extraire, à partir de l'[[https://adresse.data.gouv.fr/api-doc/adresse|API REST d'Etalab]], le nom d'une rue lyonnaise à partir de la chaîne //professeur// (et du code postal 69007), et ne récupérer que le premier retour (au cas où il y en aurait plusieurs) | ||
| - | <code bash> | ||
| - | curl "https://api-adresse.data.gouv.fr/search/?q=professeur&postcode=69007&limit=3" | jq '.features[0].properties.name' | ||
| - | # retourne : | ||
| - | "Rue Professeur Grignard" | ||
| - | </code> | ||
| - | |||
| - | Source : [[https://dev-tips.com/tools/using-jq-to-filter-json-output]] | ||
| - | |||
| - | ---- | ||
| - | |||
| - | //Contributeur : [[:utilisateurs/bcag2]]// | ||