Özet - Serileştirme
Serialize, Deserialize ve options'ı birleştirerek bir ayar dosyası yazarsın.
Özet - Serileştirme
Bu grupta serileştirmeyi öğrendin: JsonSerializer.Serialize nesneyi metne çevirir, Deserialize<T> metni nesneye, [JsonPropertyName] anahtar adını özelleştirir, JsonSerializerOptions biçimi düzenler, List<T> dizi olarak serileştirilir.
Son derste bir ayar dosyası akışı yazacaksın: nesneyi metne çevir, dosyaya kaydet, geri oku ve nesneye çevir. Bu, gerçek uygulamalarda veri saklamanın temelidir.
Uygulama Ayar kaydet ve yükle
Aşağıda Settings sınıfı hazırdır. Main içinde: (1) bir Settings örneği oluştur (Theme = "Koyu", Volume = 80); (2) JsonSerializer.Serialize ile metne çevir; (3) File.WriteAllText("ayarlar.txt", text) ile kaydet; (4) File.ReadAllText("ayarlar.txt") ile geri oku; (5) JsonSerializer.Deserialize<Settings> ile nesneye çevir; (6) Console.WriteLine ile loaded.Theme'i yazdır.
Örnek çözümü göster
var s = new Settings { Theme = "Koyu", Volume = 80 }; string text = JsonSerializer.Serialize(s); File.WriteAllText("ayarlar.txt", text); string loaded = File.ReadAllText("ayarlar.txt"); var settings = JsonSerializer.Deserialize<Settings>(loaded); Console.WriteLine(settings.Theme);
Örnek çözüm:
using System;
using System.IO;
using System.Text.Json;
class Settings
{
public string Theme { get; set; }
public int Volume { get; set; }
}
class Program
{
static void Main()
{
var s = new Settings { Theme = "Koyu", Volume = 80 };
string text = JsonSerializer.Serialize(s);
File.WriteAllText("ayarlar.txt", text);
string loaded = File.ReadAllText("ayarlar.txt");
var settings = JsonSerializer.Deserialize<Settings>(loaded);
Console.WriteLine(settings.Theme);
}
}
Uygulama Listeyi kaydet ve geri yükle
people listesini JsonSerializer.Serialize ile metne çevir, File.WriteAllText ile kisiler.txt'ye kaydet. Sonra File.ReadAllText ile oku ve JsonSerializer.Deserialize<List<Person>> ile listeye çevir. Listenin ilk öğesinin adını Console.WriteLine ile yazdır.
Örnek çözümü göster
string text = JsonSerializer.Serialize(people); File.WriteAllText("kisiler.txt", text); string loaded = File.ReadAllText("kisiler.txt"); var list = JsonSerializer.Deserialize<List<Person>>(loaded); Console.WriteLine(list[0].Name);
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
var people = new List<Person>
{
new Person { Name = "Ayşe", Age = 30 },
new Person { Name = "Mehmet", Age = 25 }
};
string text = JsonSerializer.Serialize(people);
File.WriteAllText("kisiler.txt", text);
string loaded = File.ReadAllText("kisiler.txt");
var list = JsonSerializer.Deserialize<List<Person>>(loaded);
Console.WriteLine(list[0].Name);
}
}
Kendini test et
-
Hangisi nesneyi metne çevirir?
- Deserialize<T>
- Serialize
- JsonPropertyName
- WriteIndented
Cevabı göster
JsonPropertyName — Doğru. Serialize nesneyi metne çevirir.
-
Metodu amacına eşle
- Serialize
- Nesneden metne
- Deserialize<T>
- Metinden nesneye
- JsonPropertyName
- Anahtar adı
- JsonSerializerOptions
- Biçim ayarı