2010-06-01 90 views
5

我試圖反序列化由LinqToSql生成的對象。用戶可以在視圖中編輯對象的數據,然後將其發送回控制器。編輯的數據以JSON格式提供。這個動作是怎麼樣的?在Asp.Net MVC控制器中反序列化JSON對象

喜歡的東西...

public ActionResult(JsonObject json) 
{ 
    MyClass c = Jsonify(json) as MyClass; 
} 

有沒有在我失蹤框架一個很好的幫助的靜態類?或者我必須創建一個DataContract?

非常感謝

回答

21

System.Web.Script.Serialization.JavaScriptSerializer

public ActionResult Blah(JsonObject json) 
{ 
    JavaScriptSerializer js = new JavaScriptSerializer(); 
    var c = js.Deserialize<MyClass>(json); 
    return View(c); 
} 

編輯:哎呀...只注意到你正在傳遞一個對象,而不是字符串....所以你需要使用System.Runtime.Serialization.Json.DataContractJsonSerializer

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(MyClass)); 
MyClass c = (MyClass)serializer.ReadObject(json); 
+0

不錯,謝謝(可能yeeess也許我有點懶惰rtfm ;-)) – 2010-06-01 17:36:23

+0

很高興我能幫上忙! – 2010-06-01 17:42:55

+2

+1 for update;) – 2012-08-30 15:34:15