VT2020-Jsonnet-Demo
Jump to navigation
Jump to 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