cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

Menu
😤 Ce billet a été édité le : 2023-12-09

Rapide présentation de la commande gron qui permet de rendre JSON « greppable ».

gron transforme un flux JSON en affectations discrètes pour faciliter la recherche d’une valeur et trouver le « chemin » absolu vers cette valeur. gron facilite l’exploration des API qui renvoient de gros blocs de JSON mais dont la documentation peut être assez difficile à lire.



Installation

Étonnement c’est un paquet standard :

sudo apt install gron


Cas d’usage

Soit le JSON suivant :

{
  "fruits": [
    {
      "kiwis": {
        "quantité": 5
      }
    },
    {
      "mangues": {
        "quantité": 3
      }
    },
    {
      "pommes": {
        "quantité": 0
      }
    }
  ],
  "légumes": [
    {
      "patates": {
        "quantité": 8,
        "type": "amandine"
      },
      "figues": {
        "quantité": 1,
        "type": "de barbarie"
      },
      "poireaux": {
        "quantité": 2
      }
    }
  ]
}

Que l’on peut obtenir comme suit :

jq -n '{"fruits":[{"kiwis":{"quantité":5}},{"mangues":{"quantité":3}},{"pommes":{"quantité":0}}],"légumes":[{"patates":{"quantité":8,"type":"amandine"},"figues":{"quantité":1,"type":"de barbarie"},"poireaux":{"quantité":2}}]}'

La sortie gron donnera ceci:

jq -n '{"fruits":[{"kiwis":{"quantité":5}},{"mangues":{"quantité":3}},{"pommes":{"quantité":0}}],"légumes":[{"patates":{"quantité":8,"type":"amandine"},"figues":{"quantité":1,"type":"de barbarie"},"poireaux":{"quantité":2}}]}' | gron
json = {};
json.fruits = [];
json.fruits[0] = {};
json.fruits[0].kiwis = {};
json.fruits[0].kiwis.quantité = 5;
json.fruits[1] = {};
json.fruits[1].mangues = {};
json.fruits[1].mangues.quantité = 3;
json.fruits[2] = {};
json.fruits[2].pommes = {};
json.fruits[2].pommes.quantité = 0;
json.légumes = [];
json.légumes[0] = {};
json.légumes[0].figues = {};
json.légumes[0].figues.quantité = 1;
json.légumes[0].figues.type = "de barbarie";
json.légumes[0].patates = {};
json.légumes[0].patates.quantité = 8;
json.légumes[0].patates.type = "amandine";
json.légumes[0].poireaux = {};
json.légumes[0].poireaux.quantité = 2;

Notez que la commande gron -u permet de revenir au format JSON.



Liens

  • Le code source de gron

ᦿ


ℹ 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog