JsonSerializer temelleri
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
-
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.
-
Serialize çağrısını tamamla
string text = JsonSerializer.____(p);Cevabı göster
string text = JsonSerializer.Serialize(p); -
Metodu rolüne eşle
- Serialize
- Nesneden metne
- Deserialize
- Metinden nesneye
- JsonSerializer
- Sınıf adı
- System.Text.Json
- Ad alanı