C#`ta Anonim Sınıf için JSON Serialize ve Deserialize İşlemleri

C ta Anonim Sınıf için JSON Serialize ve Deserialize İşlemleri

Modern .NET uygulamalarında JSON veri formatı; API tüketimi, konfigürasyon yönetimi, veri transferi ve mikro servis mimarilerinde kritik bir rol oynar. C# geliştiricileri için System.Text.Json kütüphanesi, yüksek performanslı ve hafif bir JSON işleme altyapısı sunar. Bu makalede, bir nesnenin JSON'a dönüştürülmesi (serialize) ve JSON içinden veri okunması (deserialize) süreçlerini teknik açıdan inceleyeceğiz.

Anonim Nesne Oluşturma ve JSON’a Dönüştürme

Aşağıdaki kod, anonim bir nesnenin oluşturulup JSON formatına dönüştürülmesini gösterir:

var a = new
{
    Ad = "Defne",
    Yas = 15,
    OgrenciMi = true
};

var json = JsonSerializer.Serialize(a);
Console.WriteLine($"JSON Data: {json}");

JSON Verisini Parse Etme ve Alanlara Erişim

JSON metni JsonDocument.Parse ile işlenir ve her bir property güvenli şekilde okunur:

using var doc = JsonDocument.Parse(json);
var root = doc.RootElement;

root.TryGetProperty("Ad", out var pAd);
root.TryGetProperty("Yas", out var pYas);
root.TryGetProperty("OgrenciMi", out var pOgrenci);

Tür Kontrolü ve Veri Okuma

Her alanın tipi kontrol edilerek uygun metotla okunur:

if (pAd.ValueKind == JsonValueKind.String)
{
    var ad = pAd.GetString();
    Console.WriteLine($"Ad: {ad}");
}

if (pYas.ValueKind == JsonValueKind.Number)
{
    var yas = pYas.GetInt32();
    Console.WriteLine($"Yaş: {yas}");
}

var ogrenciMi = pOgrenci.ValueKind == JsonValueKind.True ? "Evet" : "Hayır";
Console.WriteLine($"Öğrenci mi?: {ogrenciMi}");

Çıktı Örneği

Program çalıştırıldığında konsolda şu sonuçlar görüntülenir:

JSON Data: {"Ad":"Defne","Yas":15,"OgrenciMi":true}
Ad: Defne
Yaş: 15
Öğrenci mi?: Evet

* YZ ile oluşturulmuştur.