역직렬화 중에 매핑되지 않은 멤버 처리

기본적으로 역직렬화하는 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.UnmappedMemberHandlingSkip 또는 Disallow로 설정합니다.

  • 관련 유형의 JsonTypeInfo 계약을 사용자 지정합니다. (계약 사용자 지정에 대한 자세한 내용은 JSON 계약 사용자 지정을 참조하세요.)