Gestire i membri non mappati durante la deserializzazione
Per impostazione predefinita, se il payload JSON che si sta deserializzando contiene proprietà che non esistono nel tipo POCO (Plain Old CLR Object - Oggetto Semplice di CLR), vengono semplicemente ignorate. A partire da .NET 8, è possibile specificare che tutte le proprietà del payload devono esistere nell'POCO . In caso contrario, viene generata un'eccezione JsonException durante la deserializzazione. È possibile configurare questo comportamento in uno dei tre modi seguenti:
Annotare il tipo POCO con l'attributo JsonUnmappedMemberHandlingAttribute, specificando se i membri non mappati devono essere di tipo Skip o Disallow.
[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).