【问题标题】:Deserialize JSON Objects in Asp.Net MVC Controller在 Asp.Net MVC 控制器中反序列化 JSON 对象
【发布时间】:2011-02-26 10:56:12
【问题描述】:

我正在尝试反序列化由 LinqToSql 生成的对象。允许用户在视图中编辑对象的数据,然后将其发送回控制器。编辑后的数据采用 JSON 格式。这个动作应该是什么样子的?

类似...

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

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

非常感谢

【问题讨论】:

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


    【解决方案1】:

    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);
    

    【讨论】:

    • 很好,谢谢(耶,也许我对 rtfm 有点懒 ;-))
    • 在我看来,DataContractJsonSerializer 的 ReadObject 方法只接受 XML 阅读器或流作为输入?
    • @TedNyberg 是的,这是真的:msdn.microsoft.com/en-us/library/bb908232.aspx
    • .NET 5 的方法是什么?
    猜你喜欢
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2010-12-01
    相关资源
    最近更新 更多