Utiliser jq : installation, filtrer le JSON, mapper des tableaux, pipe avec curl
Installer jq, extraire des champs JSON, mapper des tableaux, raccourcir les réponses API avec curl.
Pour déboguer des API REST ou des logs CI, jq permet de filtrer et remodeler le JSON dans le terminal. Installation officielle sur macOS, Linux et Windows, filtres de champs, mapping de tableaux et pipes curl pour les lecteurs de hereink.
La requête est comment utiliser jq avec JSON et pipe curl. Vous devez pouvoir installer jq, lire .key, map des tableaux et réduire une réponse API.
Ce que jq règle
Plus que json.tool
Le json.tool Python ne fait qu’embellir. jq peut afficher .data.items[0].id, filtrer des tableaux, aplatir des objets.
Partenaire naturel de curl
Les corps API font souvent des centaines de lignes. Ajoutez | jq '.field' à la fin.
Vérifiez :
jq --version. Manuel :jqlang.org, GitHubjqlang/jq.
Installer jq sur trois OS
- 1macOS (Homebrew)
brew install jq. Vérifiez avecwhich jqetjq --version. - 2Linux
Debian/Ubuntu :
sudo apt update && sudo apt install jq. Fedora :sudo dnf install jq. Arch :sudo pacman -S jq. - 3Windows
winget install jqlang.jqouchoco install jq. Nouveau terminal, puisjq --version. - 4Premier filtre
echo '{"ok":true}' | jq .ok→true.
Filtrer des clés et mapper des tableaux
echo '{"user":{"name":"Lin"}}' | jq .user.name
echo '{"items":[{"id":1},{"id":2}]}' | jq '.items[]'
echo '{"items":[{"id":1},{"id":2}]}' | jq '.items | map(.id)'Entourez les filtres de quotes simples. Le point . = valeur JSON courante.
Pipe avec curl
| Cas | Exemple | Note |
|---|---|---|
| API publique | curl -s https://api.github.com/repos/jqlang/jq | jq '{name, stars: .stargazers_count}' | Champs utiles seulement |
| Texte brut | curl -s … | jq -r '.token' | -r sans guillemets JSON |
- Convient
- Inspecter champs REST, filtrer logs JSON, métadonnées CI.
- Ne convient pas
- Édition massive sur place ; texte non JSON.
Que signifie parse error ?
L’entrée n’est pas du JSON valide. Testez avec jq . seul.
Windows ne reconnaît pas jq ?
Rouvrez le terminal. where jq.
jq = yq ?
Non. jq est pour JSON. YAML → yq.
Puis dessinez les frontières
Forme API dans le terminal, frontières sur un dessin. créer un espace.