VT2020-Jsonnet-Demo

From air
Revision as of 14:32, 16 November 2020 by Alexandra.Chaton (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Cette page héberge la démonstration en lien avec la fiche Jsonnet dans le cadre du cours de Veille Technologique 2020.

Installation

L’exécution des codes servant à la démonstration ci-dessous nécessite l’installation de Jsonnet et de C++ ou Go.

Démonstration

La démonstration porte sur l’exécution des scripts suivants afin d’observer la syntaxe d’un fichier jsonnet, les différences entre les fichiers json et jsonnet ainsi que comment générer des fichiers json à partir d’un fichier jsonnet.

Lien vers la vidéo de démonstration

Fichier conditionnals.jsonnet

local Gateau(fruit=false, large=false) = {

  local factor = if large then 2 else 1,

  ingredients: [
    {
      kind: 'Sucre',
      action: 'ajouter',
      qty: 6 * factor,
      unit: 'grammes',
    },
  ] + (
    if !fruit then [] else [
      { kind: 'Fraise', qty: 2 * factor },
    ]
  ) + [
    { kind: 'Farine', qty: 0.5 * factor },
    { kind: 'Beurre', qty: 0.5 * factor },
  ],
  // Returns null if not large.
  garnish: if large then 'crème chantilly',
  served: 'Avec un chocolat chaud',
};

{
  Gateau: Gateau(),
  'Gateau aux fraises': Gateau(fruit=true),
  "Gateau d'anniversaire": Gateau(large=true),
}

Commande pour générer le fichier json :

jsonnet conditionals.jsonnet -o cond.json

-o permet de spécifier le fichier de sortie sinon les données s’affichent dans le terminal

Fichier multiple_output.jsonnet

{
    local factor = 6,
    "a.json":{
        x: 1,
        y: $["b.json"].y *  factor,
    },
    "b.json":{
        x: $["a.json"].x,
        y: 2,
    },
    "c.json":{
        //Comparaison between a.y et b.y
        commentaireY: if $["b.json"].y > $["a.json"].y then 'Valeur de b.y > a.y'
        else [if $["b.json"].y < $["a.json"].y then 'Valeur de b.y < a.y' else " b.y = a.y"],
    },
}

Commande pour générer les fichiers json :

jsonnet -m . multiple_output.jsonnet

Les fichiers générés seront : a.json, b.json, c.json


Sources