알려진 필드와 알려지지 않은 필드가 포함된 JSON 역직렬화 처리
JSON 결과를 처리할 때 수신된 데이터에 알려진 필드와 요청 시 알 수 없는 다른 필드가 포함되어 있는 상황이 자주 발생합니다. 이로 인해 데이터를 구조화된 객체로 역직렬화하려고 할 때 문제가 발생할 수 있습니다.
이 문제를 해결하는 한 가지 방법은 사용자 정의 계약 파서를 허용하는 JSON.NET과 같은 라이브러리를 사용하는 것입니다. 그러나 사용자 지정 계약 확인자를 설정하는 것은 복잡할 수 있습니다.
또 다른 솔루션은 JSON.NET에서 JsonExtensionDataAttribute를 활용하는 것입니다. 이 속성을 사용하면 JSON에서 알 수 없는 모든 필드를 포함하는 개체의 추가 필드를 지정할 수 있습니다.
다음은 이 속성을 사용하는 방법의 예입니다.
<code class="language-csharp">public class Product { public string Id { get; set; } public string Name { get; set; } // 此属性将包含来自JSON的所有未知字段 [JsonExtensionData] private IDictionary<string, JToken> ExtraFields { get; set; } }</code>
이 클래스를 사용하여 JSON 객체를 역직렬화하면 알려진 필드(ID 및 이름)가 객체의 속성에 매핑됩니다. 알 수 없는 필드는 ExtraFields 사전에 저장됩니다. 그런 다음 표준 사전 작업을 사용하여 이러한 추가 필드에 액세스할 수 있습니다. 예:
<code class="language-csharp">Console.WriteLine(product.ExtraFields["_unknown_field_name_1"]);</code>
이 접근 방식은 JSON.NET에 내장된 기능을 활용하여 알 수 없는 필드의 매핑을 단순화합니다. JSON.NET 5 이상이 필요합니다.
위 내용은 JsonExtensionDataAttribute를 사용하여 알 수 없는 필드가 있는 JSON을 역직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!