C# uygulamalarında JsonSerializer sınıfını uygulama

Tamamlandı

C# programlama dili, ad alanı üzerinden System.Text.Json JSON verileriyle çalışmak için yerleşik destek sağlar. Bu ad alanı, JSON verilerini serileştirmeye ve seri durumdan çıkarmaya yönelik sınıflar ve yöntemler içerir ve bu da C# nesnelerini JSON'a dönüştürmeyi kolaylaştırır ve tam tersi de geçerlidir.

Serileştirme nedir?

Serileştirme, bir nesnenin durumunu (özelliklerinin değerleri) depolanabilen veya iletilebilen bir forma dönüştürme işlemidir. Serileştirilmiş form, bir nesnenin ilişkili yöntemleri hakkında herhangi bir bilgi içermez.

C# uygulaması bağlamında, bir C# nesnesini JSON dizesine dönüştürmek için serileştirme kullanılır. Bu, verileri dosyalara kaydetmek, ağlar üzerinden veri göndermek veya veritabanlarında veri depolamak için kullanışlıdır. Örneğin:

  • Serileştirme, özellikle farklı programlama dilleri veya platformları kullandıklarında, farklı sistemler veya uygulamalar arasındaki veri değişimi için gereklidir. Verilerin çeşitli sistemler tarafından anlaşılabilen standart bir biçimde kolayca paylaşılmasını sağlar.
  • Serileştirme, istemciler ve sunucular arasında veri göndermek ve almak için web API'lerinde de kullanılır. İstemci bir sunucuya istekte bulunduğunda, sunucu yanıt verilerini JSON biçiminde seri hale getirerek istemcinin bir nesneye seri durumdan çıkarabilmesini sağlayabilir.
  • Serileştirme, uygulama durumunu veya kullanıcı tercihlerini kaydetme gibi veri depolama senaryolarında kullanılır. Geliştiriciler, nesneleri JSON'da seri hale getirerek verileri el ile ayrıştırmaya veya biçimlendirmeye gerek kalmadan karmaşık veri yapılarını kolayca depolayabilir ve alabilir.
  • Serileştirme genellikle önbelleğe alma mekanizmalarında kullanılır; burada veriler performansı geliştirmek ve yinelenen veritabanı sorguları veya hesaplamaları gereksinimini azaltmak için serileştirilmiş biçimde depolanır.

Seri durumdan çıkarma, JSON dizesinin bir C# nesnesine geri dönüştürüldüğü ters serileştirme işlemidir. Seri durumdan çıkarma, geliştiricilerin C# nesnelerini ve özelliklerini kullanarak JSON verileriyle daha yapılandırılmış bir şekilde çalışmasını sağlar. Bu özellikle JSON yanıtları döndüren API'lerle veya dış veri kaynaklarıyla çalışırken veya JSON dosyalarında depolanan bilgilerle çalışırken kullanışlıdır.

Ad alanını System.Text.Json inceleme

Ad System.Text.Json alanı, JSON verileriyle çalışmak için .NET'te güçlü bir kitaplıktır. Hem serileştirme (C# nesnelerini JSON'a dönüştürme) hem de seri durumdan çıkarma (JSON'yi C# nesnelerine geri dönüştürme) için işlevsellik sağlar. Hızlı, verimli ve kullanımı kolay olacak şekilde tasarlanan kitaplık, C# uygulamalarında JSON ile çalışan geliştiriciler için popüler bir seçimdir.

Kitaplık System.Text.Json ,NET Core çerçevesinin bir parçasıdır ve .NET 5 ve sonraki sürümlerde bulunur. JSON verileriyle çalışmak için aşağıdakiler dahil olmak üzere bir dizi sınıf ve yöntem sağlar:

  • JsonSerializer: C# nesnelerini JSON'a dönüştürmek için bir sınıf ve tam tersi. JSON verilerini seri hale getirme ve seri durumdan çıkarma yöntemlerinin yanı sıra serileştirme işlemini özelleştirme seçenekleri sağlar.
  • JsonDocument: JSON verilerini okumak ve ayrıştırmak için bir sınıf. Geliştiricilerin C# nesnelerine seri durumdan çıkarmak zorunda kalmadan JSON yapılarında gezinmesine ve bunları sorgulamasına olanak tanır.
  • JsonElement: JSON değerini temsil eden bir yapı. JSON verilerine erişmeye ve bunları işlemeye yönelik yöntemler sağlayarak geliştiricilerin JSON yapılarıyla daha esnek bir şekilde çalışmasına olanak sağlar.

JsonSerializer sınıfı, ad alanında serileştirme ve seri durumdan System.Text.Json çıkarma için kullanılan birincil sınıftır. C# nesnelerini JSON dizelerine dönüştürmek için yöntemler sağlar ve C# uygulamalarında JSON verileriyle çalışmayı kolaylaştırır.

Sınıfını JsonSerializer inceleme

sınıfı, JsonSerializer JSON seri hale getirme ve seri durumdan çıkarma için aşağıdaki yöntemleri sağlar:

  • Serialize: C# nesnesini JSON dizesine dönüştürür.
  • Deserialize: JSON dizesini yeniden C# nesnesine dönüştürür.

Kullanarak bir nesneyi JSON'a seri hale getirme JsonSerializer.Serialize

JsonSerializer.Serialize yöntemi, bir nesneyi JSON dize gösterimine dönüştürmek için kullanılır. Bu, verileri dosyalara kaydetmek, ağlar üzerinden veri göndermek veya veritabanlarında veri depolamak için kullanışlıdır. yöntemi giriş Serialize olarak bir nesne alır ve bir JSON dizesi döndürür.

Aşağıdaki kod kullanılarak bir nesnenin bir JSON dizesine JsonSerializer.Serializenasıl dönüştürüldüğünü gösterir:


using System;
using System.Text.Json;
using System.Text.Json.Serialization;

public class Employee
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Address { get; set; }
}

class Program
{
    static void Main()
    {
        var customer = new Employee { Name = "Anette Thomsen", Age = 30, Address = "123 Main St" };
        string jsonString = JsonSerializer.Serialize(customer);
        Console.WriteLine(jsonString);
    }
}

// Output: {"Name":"Anette Thomsen","Age":30,"Address":"123 Main St"}

Bu kod, , ve özelliklerine Employeesahip basit Name bir sınıf Agetanımlar. Address JsonSerializer.Serialize yöntemi, sınıfın bir örneğini Employee bir JSON dizesine dönüştürmek için kullanılır. Çıkış, kolayca depolanabilen veya iletilebilen nesnenin JSON gösterimidir.

kullanarak JSON'ı bir nesneye seri durumdan çıkarma JsonSerializer.Deserialize

JsonSerializer.Deserialize yöntemi, bir JSON dizesini yeniden C# nesnesine dönüştürmek için kullanılır. Seri durumdan çıkarma, dosyalardan veri okumak, API'lerden veri almak veya genel olarak JSON verilerini işlemek için kullanışlıdır. Deserialize yöntemi bir JSON dizesini ve giriş olarak oluşturulacak nesnenin türünü alır ve bu nesnenin bir örneğini döndürür.

Aşağıdaki kod, kullanarak JsonSerializer.Deserializebir JSON dizesini bir nesneye geri dönüştürmeyi gösterir:


using System;
using System.Text.Json;
using System.Text.Json.Serialization;

public class Employee
{
    public string Name { get; set; } = "Anette Thomsen";
    public int Age { get; set; }
    public string Address { get; set; } = "123 Main St";
}

class Program
{
    static void Main()
    {
        string jsonString1 = "{\"Name\":\"Anette Thomsen\",\"Age\":30,\"Address\":\"123 Main St\"}";
        string jsonString2 = @"{""Name"":""Anette Thomsen"",""Age"":30,""Address"":""123 Main St""}";
        var customer = JsonSerializer.Deserialize<Employee>(jsonString2);
        if (customer != null)
        {
            Console.WriteLine($"Name: {customer.Name}, Age: {customer.Age}, Address: {customer.Address}");
        }
        else
        {
            Console.WriteLine("Deserialization failed.");
        }
    }
}

// Output: Name: Anette Thomsen, Age: 30, Address: 123 Main St

Bu kod, nesneyi temsil eden bir Employee JSON dizesi tanımlar. JsonSerializer.Deserialize yöntemi, JSON dizesini sınıfın Employee bir örneğine geri dönüştürmek için kullanılır. JsonSerializer.Deserialize Yöntemi geneldir; yani JSON dizesinin temsil etmesini beklediğiniz nesne türünü belirtebilirsiniz.

Bu durumda, yönteminin JSON verilerini temel alarak sınıfın Employee bir örneğini oluşturmasına izin veren tür parametresi olarak belirteceğizEmployee. yöntemi sınıfının Deserialize bir örneğini Employee döndürür. Seri durumdan çıkarılmış nesnenin özelliklerine örnekte gösterildiği gibi doğrudan erişilebilir. Seri durumdan çıkarma başarısız olursa (örneğin, JSON dizesi geçersizse veya beklenen yapıyla eşleşmiyorsa), yöntem null döndürür ve bu durumu uygun şekilde işleyebilirsiniz.

JSON dizesini el ile oluşturmanın kaçış karakterleri veya düz metin dize değişmez değerleri gerektirdiğine dikkat edin. Dizeden @ önceki simge, düz metin dizesi değişmez değeri olduğunu gösterir. Düz metin dizesi değişmez değerleri, bazı kişilerin daha kolay okunmasını sağlayan biçimlendirmeye olanak sağlar.

Özet

Bu ünitede, ad alanını kullanarak System.Text.Json C# dilinde JSON verileriyle çalışmayı öğrendiniz. C# nesnelerini JSON dizelerine dönüştürmenize olanak tanıyan serileştirme ve seri durumdan çıkarma kavramlarını keşfettiniz. Ayrıca JSON verilerini seri hale getirme ve seri durumdan çıkarma yöntemleri sağlayan sınıfını incelediniz JsonSerializer . Ve Serialize yöntemlerini kullanarak Deserialize nesneleri JSON'a ve geri dönüştürmeye yönelik örnekler gördünüz ve bu da C# uygulamalarında JSON verileriyle çalışmayı kolaylaştırıyor. Bu kavramları anlamak, modern yazılım geliştirmede API'ler, veri depolama ve veri değişimi ile çalışmak için gereklidir.