Delen via


Ontbrekende leden verwerken tijdens de deserialisatie

Als de JSON-nettolading die u deserialiseert standaard eigenschappen bevat die niet bestaan in het niet-gedeserialiseerde oude CLR-objecttype (POCO), worden ze gewoon genegeerd. Vanaf .NET 8 kunt u opgeven dat alle leden aanwezig moeten zijn in de nettolading. Als dat niet zo is, wordt er een JsonException uitzondering gegenereerd. U kunt dit gedrag op drie manieren configureren:

  • Annotate your POCO type with the [<xref:System.Text.Json.Serialization.JsonUnmappedMemberHandlingAttribute>] attribute, specifying to Skip or Disallow missing members.

    [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'.
    
  • Ingesteld JsonSerializerOptions.UnmappedMemberHandling op of SkipDisallow.

  • Pas het JsonTypeInfo contract voor het relevante type aan. (Zie voor meer informatie over het aanpassen van een contract Een JSON-contract aanpassen.)