CodeBlanks Logo Icon CodeBlanks

JsonSerializer temelleri

C# kursu · Orta seviye · Ders 106/116

JsonSerializer ile nesneleri JSON'a çevirmeyi öğrenirsin.

Serileştirme nedir?

Serileştirme (serialization), bir nesneyi metne çevirmektir; böylece dosyaya kaydedilir ya da ağ üzerinden gönderilir. C#'ta System.Text.Json ad alanındaki JsonSerializer sınıfı bu işi yapar.

Bildirim: string text = JsonSerializer.Serialize(nesne);. Dönüş değeri bir string'tir; nesnenin özellikleri anahtar-değer çifti olarak yazılır. Örneğin new Person { Name = "Ayşe", Age = 30 } için sonuç {"Name":"Ayşe","Age":30} olur. Ters işlemi Deserialize yapar.

System.Text.Json ad alanı

JsonSerializer kullanmak için kodun başına using System.Text.Json; eklenir. Bu ad alanı .NET'in yerleşik serileştirme aracıdır; harici paket gerektirmez.

Bir sınıfı serileştirilebilir yapmak için ek öznitelik gerekmez: public özellikler otomatik olarak işlenir. public string Name { get; set; } gibi bir özellik "Name":"değer" çiftine çevrilir. private üyeler serileştirilmez.

Uygulama Person nesnesini serileştir

Aşağıdaki Person sınıfı hazırdır. Main içinde bir Person örneği oluştur (Name = "Ayşe", Age = 30), JsonSerializer.Serialize ile metne çevir ve Console.WriteLine ile yazdır.

Örnek çözümü göster
var p = new Person { Name = "Ayşe", Age = 30 }; ile örneği oluştur, string text = JsonSerializer.Serialize(p); ile metne çevir, Console.WriteLine(text); ile yazdır.
Örnek çözüm:
using System;
using System.Text.Json;

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        var p = new Person { Name = "Ayşe", Age = 30 };
        string text = JsonSerializer.Serialize(p);
        Console.WriteLine(text);
    }
}

Kendini test et

  1. Serialize ne döndürür?

    JsonSerializer.Serialize(p)
    • string
    • Person
    • byte[]
    • void
    Cevabı göster

    string — Doğru. Serialize, nesnenin metin karşılığını bir string olarak döndürür.

  2. Serialize çağrısını tamamla

    string text = JsonSerializer.____(p);
    Cevabı göster
    string text = JsonSerializer.Serialize(p);
  3. Metodu rolüne eşle

    Serialize
    Nesneden metne
    Deserialize
    Metinden nesneye
    JsonSerializer
    Sınıf adı
    System.Text.Json
    Ad alanı

Orta seviye bölümündeki tüm dersler