Gérer les membres non mappés lors de la désérialisation
Par défaut, si la charge utile JSON que vous désérialisez contient des propriétés qui n’existent pas dans le type d’ancien objet CLR (POCO), elles sont simplement ignorées. À compter de .NET 8, vous pouvez spécifier que toutes les propriétés de charge utile doivent exister dans le POCO. Si ce n’est pas le cas, une exception JsonException est levée pendant la désérialisation. Vous pouvez configurer ce comportement de l’une des trois manières suivantes :
Annotez votre type POCO avec l’attribut JsonUnmappedMemberHandlingAttribute, en spécifiant de Skip ou Disallow les membres non mappés.
[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'.
Définissez JsonSerializerOptions.UnmappedMemberHandling sur Skip ou Disallow.
Personnalisez le contrat JsonTypeInfo pour le type approprié. (Pour plus d’informations sur la personnalisation d’un contrat, consultez Personnaliser un contrat JSON.)