Difference between revisions of "VT2020-Jsonnet-Demo"

From air
Jump to navigation Jump to search
 
Line 46: Line 46:
 
Commande pour générer le fichier json :
 
Commande pour générer le fichier json :
 
<pre>jsonnet conditionals.jsonnet -o cond.json</pre>
 
<pre>jsonnet conditionals.jsonnet -o cond.json</pre>
<code>-o</code> permet de spécifier le fichier de sortie sinon les données s’affiche dans le terminal
+
<code>-o</code> permet de spécifier le fichier de sortie sinon les données s’affichent dans le terminal
   
 
==Fichier multiple_output.jsonnet==
 
==Fichier multiple_output.jsonnet==

Latest revision as of 15:32, 16 November 2020

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