Aracılığıyla paylaş


.NET'te JSON serileştirme ve deserileştirme - genel bakış

System.Text.Json ad alanı, JavaScript Nesne Gösterimi (JSON) ile serileştirme ve seri durumdan çıkarma (veya paketleme ve paket açma) işlevleri sağlar. Serileştirme , bir nesnenin durumunu, yani özelliklerinin değerlerini 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. Seri durumdan çıkarma , bir nesneyi serileştirilmiş biçimden yeniden oluşturur.

Kitaplık tasarımı, System.Text.Json kapsamlı bir özellik kümesi üzerinde yüksek performansı ve düşük bellek ayırmayı vurgular. Yerleşik UTF-8 desteği, web'deki veriler ve diskteki dosyalar için en yaygın kodlama olan UTF-8 olarak kodlanmış JSON metnini okuma ve yazma sürecini iyileştirir.

Kitaplık ayrıca bellek içi belge nesne modeli (DOM) ile çalışmaya yönelik sınıflar sağlar. Bu özellik, bir JSON dosyası veya dizesindeki öğelere rastgele erişim sağlar.

Visual Basic için, kitaplığın hangi bölümlerini kullanabileceğiniz konusunda bazı sınırlamalar vardır. Daha fazla bilgi için bkz . Visual Basic desteği.

Kütüphaneye nasıl ulaşılır?

Kitaplık, .NET Core 3.0 ve sonraki sürümleri için paylaşılan çerçevenin bir parçası olarak yerleşiktir. Kaynak oluşturma özelliği, .NET 6 ve sonraki sürümleri için paylaşılan çerçevenin bir parçası olarak yerleşiktir.

.NET Core 3.0'dan önceki çerçeve sürümleri için NuGet paketini yükleyin System.Text.Json . Paket aşağıdakileri destekler:

  • .NET Standard 2.0 ve üzeri
  • .NET Framework 4.6.2 ve üzeri
  • .NET 8 ve üzeri

Ad alanları ve API'ler

Önemli

System.Text.Json daha önce kullanmış olabileceğiniz aşağıdaki serileştirme API'lerini desteklemez:

Yansıma ve kaynak oluşturma karşılaştırması

Varsayılan olarak, System.Text.Jsonçalışma zamanındayansıtma kullanarak serileştirme ve seri durumdan çıkarma için nesnelerin özelliklerine erişmek için ihtiyaç duyduğu meta verileri toplar. Alternatif olarak, performansı geliştirmek, System.Text.Json özel bellek kullanımını azaltmak ve uygulama boyutunu azaltan derleme kırpmayı kolaylaştırmak için C# kaynak oluşturma özelliğini kullanabilir.

Daha fazla bilgi için bkz . Yansıma ve kaynak oluşturma.

Güvenlik bilgileri

tasarlarken JsonSerializerdikkate alınan güvenlik tehditleri ve bunların nasıl hafifletilebileceği hakkında bilgi için bkz System.Text.Json . Tehdit Modeli.

İş parçacığı güvenliği

System.Text.Json serileştirici, çalışma alanı güvenliği göz önünde bulundurularak tasarlanmıştır. Pratikte bu, JsonSerializerOptions kilitlendikten sonra, örneklerin birden fazla iş parçacığı arasında güvenli bir şekilde paylaşılabileceği anlamına gelir. JsonDocument JSON değerleri için değiştirilemez ve .NET 8 ve sonraki sürümlerde iş parçacığı güvenli bir DOM gösterimi sağlar.

Ek kaynaklar