为JQGrid序列化JSON对象的最佳/最快方法

时间:2013-10-15 21:44:02

标签: asp.net-mvc json asp.net-mvc-3 asp.net-mvc-4 jqgrid

我正在使用javascript库JQGrid来显示结果列表。我想尽可能地挤出每一点性能增益。我正在使用JQGrid url属性来调用ASP.NET MVC ActionMethod。

在action方法中,我执行查询,然后加载一个具有3个int属性和1个collection属性的匿名对象:

public JsonResult GetDataRows(int dataId)
{
    IEnumerable myDataCollection = linqDB.DataRows.Where(i => i == dataId);
    var data = new
    {
        page = 1,
        total = 1,
        records = 3,
        rows = myDataCollection.ToList();
    };
    return Json(data, JsonRequestBehavior.AllowGet);
}

MVC Json方法是将此数据序列化回javascript客户端脚本的最快方法吗?有什么更快的东西。

1 个答案:

答案 0 :(得分:1)

我看了一下MVC框架的封面,看起来JSON助手背后是JavascriptSerializer。在做一些测试时,我达到了最大有效载荷。

由于我们已经有了Newtonsoft JSON.NET库,因此我使用其序列化程序添加了一个自定义ActionResult。只是使用它写入浏览器而不是使用它来序列化任何JSON输入......但那就是。以下是ActionResult覆盖的链接,以使用备用序列化器。

Json.NET ActionResult

虽然这个序列化程序显然比标准程序化程序快,但是Microsoft WebAPI使用JSON.NET这一事实让我觉得这个未来证明了这一点。然而,基于我在网上搜索和阅读,听起来像ServiceStack.Text序列化器是最好的。这显然来自ProtoBuf-net序列化器。