Десериализация объектов JSON в контроллере Asp.Net MVC - PullRequest
5 голосов
/ 01 июня 2010

Я пытаюсь десериализовать объект, который был сгенерирован LinqToSql. Пользователь может редактировать данные объекта в представлении, а затем отправлять их обратно в контроллер. Отредактированные данные поступают в формате JSON. Как должно выглядеть это действие?

Что-то вроде ...

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

Есть ли полезный статический класс в рамках, который я пропускаю? Или мне нужно создать DataContract?

Большое спасибо

1 Ответ

21 голосов
/ 01 июня 2010

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...