dingxb324
2011-05-11 10:23 阅读 404

jqgrid用Java返回了json数据,却总是显示不出来

这两天研究jqgrid,我用的jsp,用local方式能正常显示出来,但换成json形式就不行了
[code="java"]
<%@ page pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">



jqGrid Demos


[/code]
把mydate改成从后台获取也可以
[code="java"]var mydata = ${list};[/code]
list
[code="java"]
public void onLoad(Map request, Map session) {
StringBuilder sb = new StringBuilder();
sb.append("[{id:").append('"').append("1").append('"')
.append(",invdate:").append('"').append("2007-10-01").append('"')
.append(",name:").append('"').append("test").append('"')
.append(",note:").append('"').append("note").append('"')
.append(",amount:").append('"').append("200.00").append('"')
.append(",tax:").append('"').append("10.00").append('"')
.append(",total:").append('"').append("210.00").append('"')
.append("}]")
;
request.put("list", sb.toString());
}
[/code]
但是把datatype换成json就不行,返回的json格式数据我试了各种版本,但就是不行。
不知有人碰到过类似问题没有
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    iteye_15199 iteye_15199 2011-05-12 10:12

    这个可能的问题是你即时写了返回类型是json格式,但是jQGrid插件本身并未根据返回的类型Type来做处理,也即使把你返回的json格式的数据格式做json方式处理。
    不过可以有个折中的方法来做,就是把你从服务器端返回的数据(json格式)使用eval,json=eval(json);这样子,使服务器返回的数据流转换成Json(Object),而不是Json(String),然后把你转换成的Json(Object)传入你的jQGrid,应该就可以了

    点赞 评论 复制链接分享
  • gelinaiyu gelinaiyu 2011-05-11 12:50

    用FF添加监控,看看到底是什么格式。

    点赞 评论 复制链接分享
  • suziwen suziwen 2011-05-11 20:55

    JSP跟JQGRID两码事....

    点赞 评论 复制链接分享
  • gelinaiyu gelinaiyu 2011-05-12 14:19

    我承认我的意思就是3楼说的,好吧我没说详细。所以让你看看你的数据到底是个啥,我以前有返回过,字符串格式的,还是自己写个方法来解析。

    点赞 评论 复制链接分享
  • xiang_zi xiang_zi 2012-09-10 16:41

    我也碰到相同的问题,正在解决之中。

    点赞 评论 复制链接分享
  • xiang_zi xiang_zi 2012-09-10 17:28

    http://www.trirand.com/blog/jqgrid/jqgrid.html
    看上面的例子,然后输入:
    http://www.trirand.com/blog/jqgrid/server.php?q=2&page=2&rows=20
    可以看返回的json的格式,原因就在于json各项和值需要用引号引起来。

    参考:http://www.cnblogs.com/oilsun/archive/2012/06/27/2565852.html
    jquery从1.4开始,对json数据格式要求很严格,不允许使用''单引号,必须使用""双引号。

    也就是说,不能不引起来,必须用双引号引起来。

    点赞 评论 复制链接分享
  • washingtin washingtin 2016-12-19 15:59

    我也遇见这个问题了,偶尔在一个贴子上看到juqery1.4以后对单引号比较敏感,建议都改成双引号。。
    colNames:["id","名称"],
    colModel:[
    {name:"id", width:55,index:"id",label:"id", sortable:false},
    {name:"supplierName",label:"名称", width:120}
    ],

    把colNames和colModel里的单引号改成双引号就正常显示了

    点赞 评论 复制链接分享

相关推荐