Обработка отсутствующих элементов во время десериализации
По умолчанию, если полезные данные JSON, которые вы десериализируете, содержат свойства, которые не существуют в типе десериализированного обычного обычного объекта CLR (POCO), они просто игнорируются. Начиная с .NET 8, можно указать, что все члены должны присутствовать в полезных данных. Если это не так, JsonException создается исключение. Это поведение можно настроить одним из трех способов:
Заметьте тип POCO с атрибутом
[<xref:System.Text.Json.Serialization.JsonUnmappedMemberHandlingAttribute>]
, указывая либо SkipDisallow отсутствующие элементы, либо отсутствующие элементы.[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.)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по