当前位置:  开发笔记 > 编程语言 > 正文

如何将JsonResult对象作为字符串获取,以便我可以修改它?

如何解决《如何将JsonResult对象作为字符串获取,以便我可以修改它?》经验,为你挑选了2个好方法。

我正在使用FlexiGrid jQuery插件,我需要从我的MVC应用程序中获取一个JSON对象,如果FlexiGrid仅使用该对象,我需要添加一些项目,以便它与FlexiGrid一起正常工作.

所以这是我的控制器代码的一部分:

If Request.QueryString("json") IsNot Nothing Then
    Dim data As New StringBuilder()
    data.Append("page: " & pageIndex & "," & vbCrLf)
    data.Append("total: " & ViewData.TotalCount & "," & vbCrLf)
    data.Append("rows: ")
    data.Append(Json(objCustomerList))

    Return Content(data.ToString())
End If

不幸的是,在上面的代码中Json(objCustomerList)返回'System.Web.MVV.JsonResult'而不是所需的JSON字符串数据.我也试着Json(objCustomerList).ToString()看看会发生什么,再次发生同样的事情.

有任何想法吗?



1> Eric Schoono..:

Json()ASP.NET MVC中的方法只是通过JavaScriptSerializer类使用JsonResult该类.如果您想使用JSON将objCustomerList对象序列化为字符串,则可以自己使用它.

我的建议是采取略有不同的方法.

创建一个模型,表示您尝试创建的JavaScript对象的.NET等效项.可能是具有Page,Total,Rows和CustomerList属性的FlexiGridModel对象.

然后,当您将FlexiGridModel传递给Json()它时,它就可以正常工作,无需使用构建JSON字符串StringBuilder.

如果你只是想让你的代码工作,那么有一个覆盖JavaScriptSerializer.Serialize(),它使对象序列化StringBuilder并将结果附加到.这应该是你正在寻找的.

一些相关链接:

JavaScriptSerializer示例

ASP.NET MVC JsonResult源码

Codeproject:ASP.NET MVC Flexigrid示例



2> aslakjo..:

你也可以这样做:

JsonResult json = ... ;
JavaScriptSerializer serializer = new JavaScriptSerializer();
string yourJsonResult = serializer.Serialize(json.Data);

很简单:D

编辑:代码高照明

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有