2013-11-21 42 views
0

使用JavascriptSerializer,有沒有什麼辦法來反序列化JSON,如:C#JavascriptSerializer的傳承

{ 
    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;} 
} 

感謝您的幫助!

+0

你提的問題是非常* *誤導。 – James

回答

1

不,你不能做你想做的,除非你去了一個非類型安全的方法,比如使用dynamic例如

public class Container 
{ 
    public List<dynamic> items { get; set; } 
} 

的問題是你有其中JavascriptSerializer不支持混合類型的列表。

-1

試試這個 粘貼您的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);