Обработка отсутствующих элементов во время десериализации
По умолчанию, если полезные данные JSON, которые вы десериализируете, содержат свойства, которые не существуют в типе десериализированного обычного обычного объекта CLR (POCO), они просто игнорируются. Начиная с .NET 8, можно указать, что все члены должны присутствовать в полезных данных. Если это не так, JsonException создается исключение. Это поведение можно настроить одним из трех способов:
Заметьте тип POCO с атрибутом JsonUnmappedMemberHandlingAttribute , указывая либо Skip 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'.
Задайте для параметра JsonSerializerOptions.UnmappedMemberHandling значение Skip или Disallow.
JsonTypeInfo Настройте контракт для соответствующего типа. (Сведения о настройке контракта см. в разделе Настройка контракта JSON.)