Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
json_query [Le 01/09/2023, 16:17] – [avec un serveur elasticsearch exécuter sur votre poste/serveur] bcag2json_query [Le 05/01/2025, 23:10] (Version actuelle) – correction et syntaxe d'option Amiralgaby
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]]//