JSON 결과에 알려진 필드와 알 수 없는 필드가 포함되어 있고 알 수 없는 필드 이름을 예측할 수 없는 경우 액세스 및 수정을 위해 이러한 알 수 없는 필드를 사전에 매핑해야 합니다. 이를 위해 JSON .NET의 JsonExtensionDataAttribute
속성을 사용할 수 있습니다.
다음 클래스 구조를 고려하세요.
<code class="language-csharp">public class Product { public string id { get; set; } public string name { get; set; } // 额外字段 [JsonExtensionData] private IDictionary<string, JToken> _extraStuff; }</code>
JsonExtensionDataAttribute
속성에 _extraStuff
을 적용하면 JSON .NET에 알 수 없는 필드를 이 사전에 매핑하도록 지시할 수 있습니다. JToken
은 해당 특정 필드에 대한 원시 JSON 데이터를 나타냅니다.
이 클래스를 사용하여 JSON을 역직렬화하는 경우:
<code class="language-json">{ "id": "7908", "name": "product name", "unknown_field_1": "some value", "unknown_field_2": "some value" }</code>
Product
객체의 _extraStuff
사전은 다음 키-값 쌍으로 자동으로 채워집니다.
<code class="language-csharp">{ {"unknown_field_1", "some value"}, {"unknown_field_2", "some value"} }</code>
이 접근 방식은 사용자 정의 계약 파서나 동적 개체 상속 없이 알 수 없는 필드를 처리하는 효율적인 방법을 제공합니다.
참고: JsonExtensionDataAttribute
속성은 JSON .NET v5 버전 5 이상에서 사용할 수 있습니다.
위 내용은 JSON .NET의 ExtensionDataAttribute를 사용하여 알 수 없는 필드가 있는 JSON을 역직렬화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!