在Asp.Net MVC控制器中反序列化JSON对象

时间:2010-06-01 16:47:32

标签: asp.net asp.net-mvc json linq serialization

我正在尝试反序列化由LinqToSql生成的对象。允许用户编辑视图中对象的数据,然后将其发布回控制器。编辑的数据以JSON格式提供。这个动作看起来怎么样?

像...一样的东西。

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

我缺少框架中有一个很好的有用的静态类吗?或者我是否必须创建DataContract?

非常感谢

1 个答案:

答案 0 :(得分: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);