YAML - Akış Stilleri

YAML'deki akış stilleri, nesne örneklerini oluşturmak için çapalar ve takma adlar kullanan daha iyi okunabilir özellik için katlanan içerik satırlarını kapsayan JSON'un doğal bir uzantısı olarak düşünülebilir. Bu bölümde, aşağıdaki kavramların akış temsiline odaklanacağız -

  • Takma Ad Düğümleri
  • Boş Düğümler
  • Akış Skaler stilleri
  • Akış toplama stilleri
  • Akış düğümleri

Takma ad düğümlerinin örneği aşağıda gösterilmiştir -

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

Yukarıda verilen kodun JSON çıktısı aşağıda verilmiştir -

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

İçeriği boş olan düğümler boş düğümler olarak kabul edilir. Aşağıdaki örnek bunu göstermektedir -

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

JSON'daki boş düğümlerin çıktısı aşağıdaki gibi temsil edilir -

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

Akış skaler stilleri, çift tırnaklı, tek tırnaklı ve düz türleri içerir. Aynısı için temel örnek aşağıda verilmiştir -

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

Yukarıda verilen örnek için JSON formatındaki çıktı aşağıda gösterilmiştir -

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

YAML'deki akış koleksiyonu, başka bir akış koleksiyonundaki bir blok koleksiyonuyla iç içe. Akış toplama girişleri ile sonlandırılırcomma (,) gösterge. Aşağıdaki örnek, akış toplama bloğunu ayrıntılı olarak açıklamaktadır -

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

JSON'da akış toplama için çıktı aşağıda gösterilmiştir -

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

JSON gibi akış stilleri, başlangıç ​​ve bitiş göstergelerini içerir. Herhangi bir özelliği olmayan tek akış stili düz skalerdir.

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

Yukarıda JSON formatında gösterilen kodun çıktısı aşağıda verilmiştir -

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