Aracılığıyla paylaş


Geçiş ( System.Text.Json JSON)

Kitaplık System.Text.Json varsayılan olarak değişmez, belirleyici davranışı vurgular ve çağıranın adına herhangi bir tahmin veya yorumlamayı önler. Kitaplık, güvenlik ve performans için kasıtlı olarak bu şekilde tasarlanmıştır. System.Text.Json yüksek oranda yapılandırılabilir olsa da ve özellikleri serileştirilmiş türlerde gereken değişiklikleri en aza indirmek için kullanılabilse de, mevcut türleri mümkün olduğunca az değişiklikle işleme ile idiyomatik ve güvenli serileştirmeyi etkinleştirmek için yeniden düzenleme türleri arasındaki dengeleri göz önünde bulundurmak önemlidir.

uygulamasından BinaryFormatter öğesine System.Text.Jsongeçiş yaparken aşağıdaki davranışlara ve seçeneklere dikkat etmek çok önemlidir:

  • Varsayılan olarak, alanları tarafından serileştirilmez veya seri durumdan çıkarılmaz , ancakserileştirme için not edilerek eklenebilir. Alternatif olarak, JsonSerializerOptions.IncludeFields seri hale getirilen türler için tüm genel alanları içerecek şekilde dikkatli bir şekilde ayarlanabilir true .

    JsonSerializerOptions options = new()
    {
        IncludeFields = true
    };
    
  • Varsayılan olarak, System.Text.Jsonözel alanları ve özellikleri yoksayar. özniteliğini kullanarak bir özellikte genel olmayan erişimci kullanımını [JsonInclude] etkinleştirebilirsiniz. Özel alanları dahil etmek için önemsiz olmayan bazı ek çalışmalar gerekir.

  • System.Text.Json salt okunur alanları veya özellikleri seri durumdan [JsonConstructor] çıkaramaz, ancak öznitelik, seri durumdan çıkarmada türün örneklerini oluşturmak için belirtilen oluşturucunun kullanılması gerektiğini belirtmek için kullanılabilir. Oluşturucu salt okunur alanları ve özellikleri ayarlayabilir.

  • Belirli bir tür için varsayılan serileştirme davranışını geçersiz kılmak için özel dönüştürücüler yazabilirsiniz.

  • Birçok koleksiyonun seri hale getirilmesini ve seri durumdan çıkarılmasının desteklenmesine karşın bazı sınırlamalar vardır. Serileştirme ve seri durumdan çıkarma işlemleri için hangi türler ve koleksiyonların desteklendiği hakkında ayrıntılı bilgi için desteklenen türlerle ilgili belgelerin kısmına bakın.

  • belirli koşullar altında, özel genel koleksiyonların seri hale getirilmesi ve seri durumdan çıkarılmasını destekler.

  • Yerleşik desteği olmayan diğer türler Ancak, bu türleri desteklemek için özel bir dönüştürücü yazabilirsiniz.

  • destekler. Açık devralma hiyerarşileri desteklenmez ve polimorfizmle yuvarlama, bilinen türetilmiş tüm türler için tür ayrıştırıcı tanımlayıcıları gerektirir.

  • Bir özellik üzerindeki [JsonIgnore] özniteliği, özelliğin serileştirme sırasında JSON'dan atlanmasına neden olur.

  • içindeki başvuruları korumak ve döngüsel başvuruları System.Text.Jsonişlemek için olarak JsonSerializerOptions.ReferenceHandlerayarlayınReferenceHandler.Preserve.

  • Serializationözel anlaşmalarla kapsamlı bir şekilde özelleştirilebilir ve serileştirilmiş türlerdeki değişiklikler en aza indirilerek birçok senaryo engeli kaldırılabilir.