Json.Net衍生型別反序列化技巧
Json.Net是一個強大的JSON序列化和反序列化工具,但在處理衍生型別時,反序列化會變得較為複雜。本文探討如何有效率地使用Json.Net反序列化衍生型別。
型別名稱處理
成功反序列化衍生型別需要啟用型別名稱處理。此設定指示Json.Net在序列化JSON流中包含類型名稱。預設情況下,類型名稱處理被停用,這在處理派生類型時會導致反序列化結果不明確。
啟用型別名稱處理
要啟用型別名稱處理,可以在JsonSerializerSettings
物件中指定TypeNameHandling.All
。例如下:
<code class="language-csharp">JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All };</code>
序列化與反序列化
啟用型別名稱處理後,可以如下序列化與反序列化衍生型別:
<code class="language-csharp">// 序列化 string Serialized = JsonConvert.SerializeObject(inheritanceList, settings); // 反序列化 List<BaseClass> deserializedList = JsonConvert.DeserializeObject<List<BaseClass>>(Serialized, settings);</code>
重要注意事項
啟用型別名稱處理會帶來一些問題:
總結
透過在Json.Net中啟用類型名稱處理,可以有效地反序列化派生類型並保留其繼承層次結構。此功能可讓您以方便可靠的方式處理複雜的資料結構。
以上是如何使用 Json.Net 高效反序列化衍生型別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!