"Enter"a basıp içeriğe geçin

YAML Nedir?

Elimizde bulunan veriler ile XML, JSON ve YAML da verilerin nasıl gösterildiğini gözlemleyelim.

XML

<Servers>
       <Server>
           <name>Server1</name>
           <owner>Onur</owner>
           <created>12232021</created>
           <status>active</status>
       </Server>
</Servers>

JSON

{
      Servers: [
           {
           name: Server1,
           owner: Onur,
           created: 12232021,
           status: active,
           }
        ]
}

YAML

Servers:
    -    name:Server1
         owner: Onur
         created: 12232021
         status: active

YAML’ı daha detaylı incelemek gerekirse verileri en basit haliyle alırız. Key/data çifti gibi.

Key Value eşleşmesi aşağıdaki şekilde gerçekleşir. : solunda kalanlar key, sağında kalanlar ise value olarak tanımlanır. Şunu unutmamak gerekir Key den sonra kullanılan : sonrasında kesinlikle bir boşluk kullanılmalıdır.

Fruit: Apple
Vegetable: Carrot
Liquid: Water
Meat: Chicken

Şimdi bir dizi içerisinde verilerin nasıl temsil edildiğini ele alalım.

Array/List

Meyve ve sebzeleri aşağıdkai şekilde ayırabiliriz.

Fruits:
-   Orange
-   Apple
-   Banana

Vegetables:
-   Carrot
-   Cauliflower
-   Tomato

En başta Meyveler: diyerek Key tanımını gerçekleştirdik. Bir sonraki satırda başına – koyarak value değerleri tanımlandı. – nin anlamı burada belirtilen değer bir arrayin elemanıdır.

Dictionary/Map

Dictonary, array özelliğidir. Bir öğe altında gruplandırılmıştır. Aşağıdaki örnekte iki meyvenin beslenme bilgisini kullanarak örneklemeye çalışalım. Kalori, yağ ve karbonhidratlar her meyve için farklıdır.

Her ögeden önceki boş alana dikkat edelim. Eşit sayıda boş alana sahip olmalıyız, tek bir ögenin özelliklerinden önce , hepsinin bir arada gözüküyor olması gerekmektedir.

Banana:
    Calories: 105
    Fat: 0.4g
    Carbs: 27g

Grapes:
    Calories: 62
    Fat: 0.3g
    Carbs: 16g

YAML üzerindeki boşluklara daha yakından bakmak gerekirse,

Burada temsil edilen bir sözlük mevcut. Bu sözlükte ise muzun beslenme bilgileri yer almakta. Toplam kalori miktari, yağ ve karbonhidrat bilgisi gösterilmekte. Aşağıdaki örnekte Muz en başta gözükerek alt tarafında kolari, yağ ve karbonhidrat bilgisinin başında bulunan boşluk sayısı eşit miktarda. Bu alttaki keylerin hepsinin muza ait olduğunu gösterir.

Eğer kalorinin önünde bir eksik boşluk olsaydı yaml yağ ve karbonhidrat değerini kaloriye bağlardı ve herhangi bir anlam ifade etmezdi.

Banana:
    Calories: 105
    Fat: 0.4g
    Carbs: 27g

YAML üye boşluk sayılarının eşit olması verilerimizi doğru temsil etmek için gerekmektedir.

Biraz daha detaya girip Sözlükler içeren listelerimizin de olabileceğini ele alalım.

Key Value/Dictionary/Lists

Fruits:
    -     Banana:
              Calories: 105
              Fat: 0.4g
              Carbs: 27g

    -     Grape:
              Calories: 62
              Fat: 0.3g
              Carbs: 16g

Burada elimizde meyveler mevcut. Her meyveninde kalori, yağ ve karbonhidrat değerleri yer almakta. Meyvelerimiz iki tane olmak ile birlikte her meyvenin değeri aşağıdaki şekilde boşluklar ile ayrılarak birbirinden ayrılmış bulunmaktadır.

Örnekleirn tam oturmaıs için bir de araba örneğini ele alalım.

Bİr arabanın rengi, modeli, vitesi, ücreti gibi değerleri mevcut. Burada Dictionary kullanarak ilerleyebiliriz.

Key/Value yöntemi ile işleme şöyle başlayalım

Color: Blue
Model: Corvette
Transition: Manuel
Price: $20,000

Modeli detaylandıralım ve sözlük için de sözlük kullanalım

Color: Blue
Model: 
    Name: Corvette
    Year: 1995
Transition: Manuel
Price: $20,000

Modelin değeri burada değiştirilerek iki özelliğe sahip küçük bir sözlüğe çevrilmiş oldu. Altında isim ve yıl bilgisi yer almakta. Bunun ile birlikte sözlük içinde sözlük yöntemini kullanmış olduk.

6 Adet arabanın olduğu yeni bir işlemi ele alalım.

List

- Blue Corvette
- Grey Corvette
- Red Corvette
- Green Corvette
- Blue Corvette
- Black Corvette

Dictionary

Color: Blue
Model: 
    Name: Corvette
    Year: 1995
Transition: Manuel
Price: $20,000

List of Dictionaries

- Color: Blue
  Model:
      Name: Corvette
      Model: 1995
  Transition: Manuel
  Price: $20,000

 - Color: Grey
  Model:
      Name: Corvette
      Model: 1995
  Transition: Manuel
  Price: $20,000

- Color: Red
  Model:
      Name: Corvette
      Model: 1995
  Transition: Manuel
  Price: $20,000

- Color: Green
  Model:
      Name: Corvette
      Model: 1995
  Transition: Manuel
  Price: $20,000

- Color: Blue
  Model:
      Name: Corvette
      Model: 1995
  Transition: Manuel
  Price: $20,000

- Color: Black
  Model:
      Name: Corvette
      Model: 1995
  Transition: Manuel
  Price: $20,000

Sözlükler sırasız bir koleksiyondur (Unordered) , listeler ise toplama sırasına göre sıralanır (Ordered).

Bu ne demek dersek,

Özelliklerin yerleri değişse dahi değerler eşleştiği için hiç bir sorun olmayacaktır.

Banana:                            Banana:
     Calories: 105                      Calories: 105
     Fat: 0.4g                         Carbs: 27g
     Carbs: 27g                        Fat: 0.4g

ancak bu durum Array/List için geçerli değildir. Aşağıdaki liste başarısızdır, iki liste aynı değildir. Veri yapıları ile çalışırken buna dikkat edilmesi gerekmektedir.

Fruits:                            Fruits:
 -   Orange                        -   Orange
 -   Apple                         -   Banana
 -   Banana                        -   Apple
Bir cevap yazın

E-posta hesabınız yayımlanmayacak.