VT2020-Jsonnet-Demo

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.
 * Installer Jsonnet via C++
 * Installer Jsonnet via 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 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