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