Gérer les membres manquants pendant 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’objet CLR traditionnel (POCO), elles sont simplement ignorées. À compter de .NET 8, vous pouvez spécifier que tous les membres doivent être présents dans la charge utile. Si ce n’est pas le cas, une exception JsonException est levée. Vous pouvez configurer ce comportement de l’une des trois manières suivantes :
Annotez votre type POCO avec l’attribut
[<xref:System.Text.Json.Serialization.JsonUnmappedMemberHandlingAttribute>]
, en spécifiant qu’il faut Skip ou Disallow les membres manquants.[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.)
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour