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