2010-06-01 33 views
5

Tôi đang cố gắng deserialize một đối tượng được tạo ra bởi LinqToSql. Người dùng được phép chỉnh sửa dữ liệu của đối tượng trong khung nhìn và sau đó nó được đưa trở lại bộ điều khiển. Dữ liệu đã chỉnh sửa có trong JSON. Hành động này phải như thế nào?Deserialize JSON Objects trong Asp.Net MVC Controller

Cái gì đó như ...

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

Có một lớp tĩnh hữu ích thoải mái trong khuôn khổ Tôi đang thiếu? Hay tôi phải tạo một DataContract?

Rất cám ơn

Trả lời

21

System.Web.Script.Serialization.JavaScriptSerializer

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

EDIT: Rất tiếc ... chỉ nhận thấy bạn đang đi qua một đối tượng thay vì chuỗi .... vì vậy bạn sẽ cần phải sử dụng System.Runtime.Serialization.Json.DataContractJsonSerializer:

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

tốt đẹp, cảm ơn (và yeeess có lẽ tôi hơi lười biếng để rtfm ;-)) –

+0

Vui vì tôi có thể giúp! –

+2

+1 để cập nhật;) –

Các vấn đề liên quan