Json.Net 직렬화에서 사전 키를 유지하는 방법
Json.Net은 일반적으로 사용되는 직렬화 라이브러리이지만 사전이 포함된 객체를 직렬화할 때 사전 키를 유지하는 방법에 대한 문제가 발생할 수 있습니다.
예를 살펴보겠습니다.
<code class="language-c#">public class Test { public string X { get; set; } public Dictionary<string, string> Y { get; set; } }</code>
이 개체를 다음 JSON 형식으로 직렬화한다고 가정해 보겠습니다.
<code class="language-json">{ "X" : "value", "key1": "value1", "key2": "value2" }</code>
여기서 사전 키("key1" 및 "key2")는 JSON 출력에 명시적으로 포함되어야 합니다.
JsonExtensionData 속성을 사용하여 사전 유지
Json.Net 5.0.5 이상을 사용하는 경우 간단한 해결 방법이 있습니다. [JsonExtensionData]
속성을 사용하여 사전을 상위 개체의 직렬화된 표현의 일부로 승격할 수 있습니다. 사전 속성에 속성을 적용하면 됩니다.
<code class="language-c#">public class Test { public string X { get; set; } [JsonExtensionData] public Dictionary<string, object> Y { get; set; } }</code>
이 조정을 통해 사전의 키-값 쌍이 상위 개체의 JSON 표현에 원활하게 통합됩니다. 또한 이 메커니즘은 양방향으로 작동하므로 클래스 멤버에 직접 매핑되지 않는 다른 JSON 속성을 사전으로 역직렬화할 수 있습니다.
위 내용은 Json.Net으로 직렬화할 때 사전 키를 어떻게 보존할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!