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

Dän*_*änu 6 linq asp.net asp.net-mvc serialization json

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

就像是...

public ActionResult(JsonObject json)
{
    MyClass c = Jsonify(json) as MyClass;
}
Run Code Online (Sandbox Code Playgroud)

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

非常感谢

Bra*_*ord 22

System.Web.Script.Serialization.JavaScriptSerializer

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

编辑:糟糕...只是注意到你传递的是一个对象而不是字符串....所以你需要使用System.Runtime.Serialization.Json.DataContractJsonSerializer:

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(MyClass));
MyClass c = (MyClass)serializer.ReadObject(json);
Run Code Online (Sandbox Code Playgroud)