C#中已知和未知字段的JSON反序列化
當JSON結果包含已知和未知欄位時,通常需要將未知欄位對應到字典中,以便於存取和修改。雖然有多種方法可以實現這一點,但使用JSON .NET中的JsonExtensionDataAttribute
提供了一種便捷的解決方案。
JsonExtensionDataAttribute
屬性可讓您指定一個屬性來保存額外的未知欄位。例如下:
<code class="language-csharp">public class Product { public string id { get; set; } public string name { get; set; } [JsonExtensionData] private IDictionary<string, JToken> _extraFields; }</code>
使用此屬性,未知欄位將儲存在_extraFields
屬性中,這是一個字串鍵(欄位名稱)和JToken
值(欄位值)的字典。這允許您輕鬆存取和修改程式碼中的未知欄位。
請注意,此方法需要JSON .NET v5版本5或更高版本。如果您使用的是早期版本,則可能需要探索原始文章中提到的其他選項,例如使用自訂契約解析器或自訂轉換器。
以上是如何在 C# 中反序列化具有已知和未知字段的 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!