Share via


Seri durumdan çıkarma sırasında eksik üyeleri işleme

Varsayılan olarak, seri durumdan çıkardığınız JSON yükü seri durumdan çıkarılmış eski CLR nesnesi (POCO) türünde mevcut olmayan özellikler içeriyorsa, bunlar yalnızca yoksayılır. .NET 8'den başlayarak, tüm üyelerin yükte bulunması gerektiğini belirtebilirsiniz. Değilse, bir JsonException özel durum oluşturulur. Bu davranışı üç yoldan biriyle yapılandırabilirsiniz:

  • POCO türüne özniteliğiyle [<xref:System.Text.Json.Serialization.JsonUnmappedMemberHandlingAttribute>] ek açıklama ekleyin ve üyelere veya Disallow eksik üyelere Skip belirtin.

    [JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)]
    public class MyPoco
    {
         public int Id { get; set; }
    }
    
    JsonSerializer.Deserialize<MyPoco>("""{"Id" : 42, "AnotherId" : -1 }"""); 
    // JsonException : The JSON property 'AnotherId' could not be mapped to any .NET member contained in type 'MyPoco'.
    
  • veya Disallowolarak Skip ayarlayınJsonSerializerOptions.UnmappedMemberHandling.

  • Sözleşmeyi JsonTypeInfo ilgili tür için özelleştirin. (Bir sözleşmeyi özelleştirme hakkında bilgi için bkz. JSON sözleşmelerini özelleştirme.)