소개
System.Text.Json 네임스페이스는 .NET에서 고성능 JSON 직렬화 및 역직렬화를 제공하는 Newtonsoft.Json의 최신 대안입니다. 이전에 System.Text.Json에서 사용할 수 없었던 기능 중 하나는 Newtonsoft.Json의 IContractResolver 인터페이스와 유사한 계약 해결 프로세스를 사용자 지정하는 방법이었습니다. 그러나 이제 이 기능은 IJsonTypeInfoResolver 구현을 통해 .NET 7에서 사용할 수 있습니다.
답변
새로운 .NET 7 기능: IJsonTypeInfoResolver
.NET 7부터 System.Text.Json 네임스페이스에는 계약 사용자 정의를 가능하게 하는 IJsonTypeInfoResolver 인터페이스가 도입되었습니다. 개발자는 이 인터페이스를 사용하여 직렬화 및 역직렬화 중에 특정 유형에 대한 메타데이터를 수정하는 사용자 정의 계약 확인자를 생성할 수 있습니다.
DefaultJsonTypeInfoResolver
System.Text.Json 팀은 IJsonTypeInfoResolver 인터페이스를 구현하는 기본 계약 확인자 DefaultJsonTypeInfoResolver를 제공했습니다. 이 확인자는 Newtonsoft.Json의 DefaultContractResolver와 유사한 기능을 제공합니다. DefaultJsonTypeInfoResolver를 하위 클래스로 분류하거나 수정자를 추가하여 요구 사항에 따라 계약 메타데이터를 사용자 정의할 수 있습니다.
수정자와 함께 DefaultJsonTypeInfoResolver 사용
SelectiveSerializer 클래스를 작업에 맞게 조정하려면 System.Text.Json에서 SerializeSelectedFields 확장 메서드를 사용할 수 있습니다. DefaultJsonTypeInfoResolver:
var options = new JsonSerializerOptions { TypeInfoResolver = new DefaultJsonTypeInfoResolver() .SerializeSelectedFields("FirstName,Email,Id"), // Add other options as required PropertyNamingPolicy = JsonNamingPolicy.CamelCase, WriteIndented = true, };
직렬화 중에 지정된 속성만 선택적으로 직렬화합니다.
추가 참고 사항
위 내용은 IJsonTypeInfoResolver를 사용하여 .NET 7에서 JSON 직렬화를 사용자 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!