easyUI 使用datagrid 返回的json 数据正确 为啥页面显示不出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了easyUI 使用datagrid 返回的json 数据正确 为啥页面显示不出来相关的知识,希望对你有一定的参考价值。

求解答 我是返回一个json格式的String
使用json 文件 页面也显示不出来,

但是 直接在js里面 使用data 属性把json字符串放进去可以出来……

疯掉了 啊 大神在哪啦啊

把.json文件改为.aspx,调用也相应修改为.aspx
原因未知,不知道抽的什么疯

下面是抄来的

WIN7配置IIS支持.json格式文件(转)
windos7的iis默认并不支持解析.json格式的文件,站长最近在翻译jQuery EasyUI帮助手册时,由于要准确把握原文意思,所以对它附带的demo也一一试用了,结果就碰到了浏览器无法显示json数据的问题,由于插件的json数据是从.json文件载入的,所以推测应该是iis不支持json文件,现在把解决方法告诉大家:
1、iis必须开启asp支持,如果你的iis默认没有支持asp,那么进入控制面板——程序——打开或关闭windows功能——internet信息服务——万维网服务——应用程序开发功能,选择asp,然后确定。
2、开启asp支持后,进入控制面板——系统和安全——管理工具——internet信息服务管理器,打开”MIME类型“。点击添加,扩展名写“.json”【不要引号】,MIME类型写”application/x-javascript“【不要引号】,然后确定。
3、打开”处理程序映射“,点击”添加脚本映射“,请求路径写”*.json”【不要引号】,可执行文件为“C:\Windows\System32\inetsrv\asp.dll”【通过浏览窗口定位该文件】,名称写“JSON”,再打开请求限制——谓词——下列谓词之一,填写“GET,POST”【不要引号】,两次确定后会弹出提示,点击“是”,然后重启IIS。
4、通过浏览器访问:http://localhost/xxx.json,应该就可以显示json数据了,如果出现下载提示,检查以上步骤是否出现拼写错误,如果没有,重启计算机,应该就可以了。

改成string data = "[\"name\":\"ants\",\"age\":\"24\",\"name\":\"lele\",\"age\":\"23\"]";
就不用换jq版本

+1 json不规范引起的
另外context.Response.ContentType = "application/json";
参考技术A 所以最容易出问题的地方在于路径,你使用firebug,查看一下到底有没有访问到你的这个json文件追问

你好,我调试的时候发现,

这个请求会有networkError 404 但是 他确实是触发了后台的controller 返回json了 ,这个是为什么。

想不通……。

追答

那你点开看看呗。。哪里的错误

追问

看不懂额,请求路径没什么问题呀

追答

.do 你这是struts1??
但是你的脚本报错了,404,脚本没找到。你检查一下

本回答被提问者采纳

使用easyui中的datagrid时,通过action能够返回json数据,但是,却不能在页面中显示数据

如果是分页查询数据的话,首先将不必要的字段过滤了,如:currentPage,DetachedCriteria,pageSize.

通过以下代码完成

     JsonConfig config = new JsonConfig();
        config.setExcludes(new String[]{"currentPage","dc","pageSize"});
        //将pageBean转化为json
        String json = JSONArray.fromObject(pb,config).toString();

此时,返回的json数据是如下类型:

[
    {
        "rows":[
            {
                "decidedzones":[],
                "deltag":"",
                "haspda":"1"
                ,"id":"297e95de5ef6a63e015ef6ca27030000",
                "name":"lsi",
                "standard":"正常",
                "station":"tudou",
                "telephone":"18345678999"
            }
        ],
        "total":4
    }
]

如果要想在页面中接收到数据必须要将最外层的中括号去了。我是通过求其子字符串完成的。如下:

json = json.substring(1, json.length()-1);

然后,将其写会页面中。

//帮pageBean写入页面中
        ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");
        ServletActionContext.getResponse().getWriter().print(json);
        return NONE;

如果,json中的key与easyui中datagrid的columns的field属性一致的话即可正确显示

以上是关于easyUI 使用datagrid 返回的json 数据正确 为啥页面显示不出来的主要内容,如果未能解决你的问题,请参考以下文章

ssm+easyUI datagrid 不能显示后台controller层返回的json数据

EasyUI表格DataGrid获取数据的方式

springmvc 后台向页面EasyUI的Datagrid传递数据(JSon格式)

easyui中的datagrid 如何通过url绑定数据

EasyUI 之 easyui-datagrid 字段格式化

怎么把数据库中的数据通过jquery easyui datagrid进行绑定绑定