Liste ve dictionary serileştirme
List<T> ve Dictionary<K,V>'yi JSON'a çevirmeyi öğrenirsin.
List<T> serileştirme
JsonSerializer, yalnızca tek nesneleri değil, koleksiyonları da serileştirir. Bir List<Person>'ı JsonSerializer.Serialize(list) ile çağırırsan sonuç bir dizi olur: [{...},{...}].
Her eleman, tek nesne biçimine göre serileştirilir. Listenin tamamı köşeli parantezler arasına alınır. Deserialize<List<Person>>(text) ile geri çevrilir. Bu, birden çok kaydı dosyada saklamanın en kolay yoludur.
Dictionary<K,V> serileştirme
Dictionary<string, int> gibi bir sözlük, anahtar-değer çiftleri olarak serileştirilir: {"elma":5,"armut":3}. Sözlük anahtarları metin olur, değerler türüne göre yazılır.
Deserialize<Dictionary<string, int>>(text) ile geri çevrilir. Sözlük anahtarı string ya da sayı olabilir; serileştirmede her zaman metne dönüşür. Bu, ayar ya da çeviri tabloları için idealdir.
Uygulama Person listesi serileştir
Aşağıdaki people listesini JsonSerializer.Serialize(people) ile metne çevir ve Console.WriteLine ile yazdır. Listenin iki öğesi vardır.
Örnek çözümü göster
string text = JsonSerializer.Serialize(people); ile listeyi metne çevir, Console.WriteLine(text); ile yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
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);
Console.WriteLine(text);
}
}
Kendini test et
-
List tür parametresi
var list = JsonSerializer.Deserialize<List<____>>(text);Cevabı göster
var list = JsonSerializer.Deserialize<List<Person>>(text); -
List<Person> nasıl serileştirilir?
- Köşeli parantezli dizi olarak
- Tek nesne gibi
- Sözlük olarak
- Serileştirilemez
Cevabı göster
Köşeli parantezli dizi olarak — Doğru. List<Person> köşeli parantezli dizi olarak serileştirilir: [{...},{...}].
-
Türü çıktısına eşle
- List<Person>
- [{...},{...}]
- Dictionary<string,int>
- {"a":1,"b":2}
- Person
- {"Name":"..."}
- int
- 5