[英]C# JavascriptSerializer inheritence
使用JavascriptSerializer,有什么方法可以反序列化json:
{
items:[
{name:"item1", prop1:true, prop2:"prop"},
{name:"item2", prop1:true, prop3:"prop", prop4:"prop"}
]
}
是否可以使用這些類反序列化:
public abstract class Item
{
public String name {get; set;}
public bool prop1 {get; set;}
}
public class ItemA : Item
{
public String prop2 {get; set;}
}
public class ItemB : Item
{
public String prop3 {get; set;}
public String prop4 {get; set;}
}
感謝幫助 !
不,除非您采用了非dynamic
類型的安全方法(例如,使用dynamic
方法)
public class Container
{
public List<dynamic> items { get; set; }
}
問題是您有JavascriptSerializer
不支持的混合類型的列表。
嘗試此操作將您的json字符串粘貼到http://json2csharp.com/並生成類並執行代碼
public class Item
{
public string name { get; set; }
public bool prop1 { get; set; }
public string prop2 { get; set; }
public string prop3 { get; set; }
public string prop4 { get; set; }
}
public class RootObject
{
public List<Item> items { get; set; }
}
string sValue ="{items:[{name:"item1", prop1:true, prop2:"prop"},{name:"item2", prop1:true,
prop3:"prop", prop4:"prop"}]}
System.Web.Script.Serialization.JavaScriptSerializer ObjJSerializer = new
System.Web.Script.Serialization.JavaScriptSerializer();
var Data = ObjJSerializer.Deserialize<RootObject>(sValue);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.