views:

195

answers:

1

Hey guys

I'm trying to deserialize an object which was generated by LinqToSql. The user is allowed to edit the data of the object in the view and then it gets posted back to the controller. The edited Data comes in JSON. How does this action have to look like?

Something like...

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

Is there a nice helpful static class in the framework I'm missing? Or do I have to create a DataContract?

Many thanks

+2  A: 

System.Web.Script.Serialization.JavaScriptSerializer

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

EDIT: Oops...just noticed you are passing an object instead of string....so you will need to use System.Runtime.Serialization.Json.DataContractJsonSerializer:

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(MyClass));
MyClass c = (MyClass)serializer.ReadObject(json);
Bradley Mountford
nice, thanks (and yeeess maybe I was a little to lazy to rtfm ;-))
Dänu
Glad I could help!
Bradley Mountford