Gestire i membri mancanti durante la deserializzazione
Per impostazione predefinita, se il payload JSON che si sta deserializzando contiene proprietà che non esistono nel Plain Old CLR Object (POCO) deserializzato, vengono semplicemente ignorate. A partire da .NET 8, è possibile specificare che tutti i membri devono essere presenti nel payload. In caso contrario, viene generata un'eccezione JsonException. È possibile configurare questo comportamento in uno dei tre modi seguenti:
Annotare il tipo POCO con l'attributo JsonUnmappedMemberHandlingAttribute, specificando Skip o Disallow membri mancanti.
[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'.
Impostare JsonSerializerOptions.UnmappedMemberHandling su Skip o Disallow.
Personalizzare il contratto JsonTypeInfo per il tipo pertinente. (Per informazioni sulla personalizzazione di un contratto, vedere Personalizzare un contratto JSON).