YAML - Styles de flux

Les styles de flux dans YAML peuvent être considérés comme une extension naturelle de JSON pour couvrir les lignes de contenu de pliage pour une meilleure fonctionnalité de lecture qui utilise des ancres et des alias pour créer les instances d'objet. Dans ce chapitre, nous nous concentrerons sur la représentation des flux des concepts suivants -

  • Nœuds d'alias
  • Nœuds vides
  • Styles scalaires de flux
  • Styles de collection Flow
  • Nœuds de flux

L'exemple de nœuds d'alias est illustré ci-dessous -

%YAML 1.2
---
!!map {
   ? !!str "First occurrence"
   : &A !!str "Foo",
   ? !!str "Override anchor"
   : &B !!str "Bar",
   ? !!str "Second occurrence"
   : *A,
   ? !!str "Reuse anchor"
   : *B,
}

La sortie JSON du code donné ci-dessus est donnée ci-dessous -

{
   "First occurrence": "Foo", 
   "Second occurrence": "Foo", 
   "Override anchor": "Bar", 
   "Reuse anchor": "Bar"
}

Les nœuds avec un contenu vide sont considérés comme des nœuds vides. L'exemple suivant montre ceci -

%YAML 1.2
---
!!map {
   ? !!str "foo" : !!str "",
   ? !!str "" : !!str "bar",
}

La sortie des nœuds vides dans JSON est représentée comme ci-dessous -

{
   "": "bar", 
   "foo": ""
}

Les styles scalaires de flux incluent les types entre guillemets doubles, simples et simples. L'exemple de base pour le même est donné ci-dessous -

%YAML 1.2
---
!!map {
   ? !!str "implicit block key"
   : !!seq [
      !!map {
         ? !!str "implicit flow key"
         : !!str "value",
      }
   ]  
}

La sortie au format JSON pour l'exemple donné ci-dessus est affichée ci-dessous -

{
   "implicit block key": [
      {
         "implicit flow key": "value"
      }
   ] 
}

La collection de flux dans YAML est imbriquée avec une collection de blocs dans une autre collection de flux. Les entrées de collecte de flux se terminent parcomma (,) indicateur. L'exemple suivant explique en détail le bloc de collecte de flux -

%YAML 1.2
---
!!seq [
   !!seq [
      !!str "one",
      !!str "two",
   ],
   
   !!seq [
      !!str "three",
      !!str "four",
   ],
]

La sortie pour la collecte de flux dans JSON est affichée ci-dessous -

[
   [
      "one", 
      "two"
   ], 
   [
      "three", 
      "four"
   ]
]

Les styles de flux tels que JSON incluent des indicateurs de début et de fin. Le seul style de flux qui n'a aucune propriété est le scalaire simple.

%YAML 1.2
---
!!seq [
!!seq [ !!str "a", !!str "b" ],
!!map { ? !!str "a" : !!str "b" },
!!str "a",
!!str "b",
!!str "c",]

La sortie du code ci-dessus au format JSON est donnée ci-dessous -

[
   [
      "a", 
      "b"
   ], 
   
   {
      "a": "b"
   }, 
   
   "a", 
   "b", 
   "c"
]