反序列化具有動態鍵名的子物件
處理包含具有動態鍵名(通常是數字鍵)的子物件的JSON資料時,使用標準JSON.NET技術反序列化它們可能具有挑戰性。
為了解決這個問題,可以建立一個自訂轉換器來處理動態鍵名並將值反序列化到類型化容器中。以下自訂轉換器TypedExtensionDataConverter<T>
實現了此功能:
<code class="language-csharp">public class TypedExtensionDataConverter<T> : JsonConverter { // ... (代码已省略) }</code>
然後,可以在類別結構中使用此轉換器來指定哪個屬性包含具有動態鍵名的子物件:
<code class="language-csharp">[JsonConverter(typeof(TypedExtensionDataConverter<User>))] class User { // ... (代码已省略) }</code>
透過這種方法,可以反序列化子物件並將它們儲存在類型化容器中(在本例中為Dictionary<string, User>
),從而提供一種結構化且易於存取的方式來處理資料。
以上是如何在 C# 中使用動態鍵名稱反序列化 JSON 子物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!