Usage de JQ pour manipuler du json

Avec un fichier local

cat fichier.json {jq}

Avec un fichier distant

curl fichier.json {jq}
[
  {
    "Annee": 2008,
    "Region": "ALSACE",
    "id_departement": 67,
    "Departement": "BAS-RHIN",
    "Animaux": "Brebis viande",
    "Tetes certfiées bio / ruches": 220
  },
  {
    "Annee": 2008,
    "Region": "ALSACE",
    "id_departement": 67,
    "Departement": "BAS-RHIN",
    "Animaux": "Chèvres",
    "Tetes certfiées bio / ruches": "s"
  },
  {
    "Annee": 2009,
    "Region": "ALSACE",
    "id_departement": 67,
    "Departement": "BAS-RHIN",
    "Animaux": "Poules pondeuses",
    "Tetes certfiées bio / ruches": 5596
  },
  {
    "Annee": 2010,
    "Region": "ALSACE",
    "id_departement": 67,
    "Departement": "BAS-RHIN",
    "Animaux": "Ruches",
    "Tetes certfiées bio / ruches": "s"
  }
]

Retourner toutes les années

jq '.[].Annee' # On parcourt toutes les valeurs du tableau

Pour n’avoir que les trois premières entrées

jq '.[0:3]' # ou .[0] pour la première seulement

Retourner toutes les anées dans un nouveau champ super

jq '.[] | {Super: .Annee}' # ne pas oublier le pipe avant le nouveau format

Chercher les entrée dont la valeur est supérieure à tant

jq '.[].Annee > 2010' # Retourne true pour certains champs et false pour d'autres

https://stedolan.github.io/jq/manual/#ConditionalsandComparisons

Concaténer

Soit un fichier :

{
    [
	    {
            "id": 30,
            "nom": "Sizorn",
            "prenom": "Philippe",
            "available": true,
            "inTeam": true
        },
        {
            "id": 31,
            "nom": "Volet",
            "prenom": "Christophe",
            "available": true,
            "inTeam": true
        },
        {
            "id": 32,
            "nom": "Gonidou",
            "prenom": "Éric",
            "available": false,
            "inTeam": true
        }
    ]
}
curl list.json | jq '.[][] | (.nom + " " + .prenom)'

Bien penser à mettre les parenthèses autour des champs à afficher, après le pipe, dans la commande jq. C’est ce qui permet, à l’intérieur, de concaténer.