YAML - Flow Styles

Flow-Stile in YAML können als natürliche Erweiterung von JSON betrachtet werden, um die faltbaren Inhaltszeilen für eine besser lesbare Funktion abzudecken, bei der Anker und Aliase zum Erstellen der Objektinstanzen verwendet werden. In diesem Kapitel konzentrieren wir uns auf die Flussdarstellung der folgenden Konzepte:

  • Alias-Knoten
  • Leere Knoten
  • Flow Scalar-Stile
  • Flow-Sammlungsstile
  • Flussknoten

Das Beispiel für Alias-Knoten ist unten dargestellt -

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

Die JSON-Ausgabe des oben angegebenen Codes ist unten angegeben -

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

Knoten mit leerem Inhalt werden als leere Knoten betrachtet. Das folgende Beispiel zeigt dies -

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

Die Ausgabe leerer Knoten in JSON wird wie folgt dargestellt:

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

Flow-Skalarstile umfassen Typen in doppelten, einfachen und einfachen Anführungszeichen. Das grundlegende Beispiel dafür ist unten angegeben -

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

Die Ausgabe im JSON-Format für das oben angegebene Beispiel wird unten gezeigt -

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

Die Flow-Sammlung in YAML ist mit einer Block-Sammlung in einer anderen Flow-Sammlung verschachtelt. Flow Collection-Einträge werden mit beendetcomma ((,) Indikator. Im folgenden Beispiel wird der Flow Collection-Block ausführlich erläutert.

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

Die Ausgabe für die Flusserfassung in JSON wird unten angezeigt -

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

Flow-Stile wie JSON enthalten Start- und Endindikatoren. Der einzige Flow-Stil, der keine Eigenschaft hat, ist der einfache Skalar.

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

Die Ausgabe für den oben gezeigten Code im JSON-Format ist unten angegeben -

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