[英]Deserialize JSON to C# collection
我正在使用Newtonsoft.Json將C#對象與JSON序列化/反序列化。 我的C#對象具有以下類型的屬性:
List<BaseClass> objects { get; set; }
該集合包含不同的子對象(例如-ChildClass1,ChildClass2)。
序列化為JSON可以正常工作,但是反序列化時會在集合中創建BaseClass對象(這很明顯:))。
反序列化時,有什么方法可以創建具體的子對象嗎? 我嘗試通過實現CustomCreationConverter<BaseClass>
創建一個自定義轉換器。 但是問題卻被覆蓋了。Create方法只給我提供類型,因此無法確定要返回哪個對象(ChildClass1或ChildClass2)。
我的JSON字符串具有Type屬性,通過它可以標識要創建的子對象。
非常感謝您的幫助。
您可以使用TypeNameHandling
選項:
var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }
JsonConvert.SerializeObject(myObject, Formatting.Indented, settings );
TypeNameHandling選項“自動”可確保類型名稱包含在子類的序列化JSON中。 但請注意:重命名類或其名稱空間后,這些名稱將無效!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.