Delen via


Ongemapte leden verwerken tijdens de deserialisatie

Als de JSON-nettolading die u deserialiseert, standaard eigenschappen bevat die niet bestaan in het type gewone oude CLR-object (POCO), worden ze gewoon genegeerd. Vanaf .NET 8 kunt u opgeven dat alle payload-eigenschappen moeten bestaan in de POCO. Als dat niet zo is, wordt er een JsonException-uitsluiting geworpen tijdens deserialisatie. U kunt dit gedrag op drie manieren configureren:

  • Annoteren je POCO-type met het JsonUnmappedMemberHandlingAttribute-attribuut en specificeer of Skip of Disallow voor niet-toegewezen leden.

    [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.)