zoukankan      html  css  js  c++  java
  • 后台向前台响应的json数据格式的一些问题

    最近在写后台向前台easyUI页面发送数据时遇到的一些报错。

    首先easyUI内部封装了许多的方法和对象,以至于很多参数都不清楚,需要查询,其次easyUI也是有内置ajax所以从后台响应回来的数据一般是json格式。

    这样就会遇到一些问题,json格式该怎么处理?json里的数据是什么类型的?下面一一说明。

    1,首先一般我们会使用jdbc工具类这样返回的是一个

    ResultSet结果集,以前不清楚,现在亲测可用直接将结果集转为list集合并且直接封装到jsonarray中。
    同样为了前台需求,我们需要给json数据处理成正确的格式,其中就包括日期格式必须转换为String类型,下面提供一个工具类
    public static JSONArray formatRsToJsonArray(ResultSet rs)throws Exception{
    
            ResultSetMetaData md=rs.getMetaData();
    
            int num=md.getColumnCount();   //  得到列数
            JSONArray array=new JSONArray();
            while(rs.next()){
                JSONObject mapOfColValues=new JSONObject();
                for(int i=1;i<=num;i++){
                    Object o=rs.getObject(i);
                    if(o instanceof Date){
                        mapOfColValues.put(md.getColumnName(i), DateUtil.formatDate((Date)o, "yyyy-MM-dd"));
                    }else{
                        mapOfColValues.put(md.getColumnName(i), rs.getObject(i));                    
                    }
                }
                array.add(mapOfColValues);
            }
            return array;
        }

    此类只需将ResultSet传入便会自动转换每一列,并返回jsonarray

    2.我自己常用的第三方工具类dbutil会直接返回集合,然后直接放入jsonarray即可。但如果数据里没有日期还好,有日期就很难处理。最后纠结半天,还是用一个工具类解决最方便。

    public static JSONArray formatRsToJsonArray(List list)throws Exception{
    //转换学生数据格式的jsonutil类,注意数据格式是写死的 需要自己定义
    
            JSONArray array=new JSONArray();
            Iterator it = list.iterator();
            while (it.hasNext()){
                Student next = (Student) it.next();
                JSONObject mapOfColValues=new JSONObject();
    
                    if(next.getBorndate() instanceof Date){
                        mapOfColValues.put("borndate", DateUtil.formatDate(next.getBorndate(), "yyyy-MM-dd"));
                    }
                        mapOfColValues.put("suid",next.getSuid() );
                        mapOfColValues.put("sid",next.getSid());
                        mapOfColValues.put("uname",next.getUname());
                        mapOfColValues.put("sex",next.getSex());
                        mapOfColValues.put("email",next.getEmail() );
                        mapOfColValues.put("ps", next.getPs());
                        mapOfColValues.put("classname",next.getClassname());
    
                array.add(mapOfColValues);
            }
            return array;
        }

    JSONArray jsonArray=null;
            try {
                jsonArray = MyjsonUtil.formatRsToJsonArray(pageBean.getList());
            } catch (Exception e) {
                e.printStackTrace();
            }
            jo.put("rows",jsonArray);
    
            ResponseUtil.write(jo,resp);

    注意我的工具类是自己写的 不具有通用性,需要自己更改数据。如果有好的方法,还请大佬指点一下。

  • 相关阅读:
    d3操作svg路径动画,及dom移动
    新时代前端必备神器 Snapjs之弹动效果
    threejs 鼠标移动控制模型旋转
    玩转SVG线条动画
    CSS也能计算:calc
    CSS两种盒子模型:cntent-box和border-box
    解决Jquery中click里面包含click事件,出现重复执行的问题
    区块链踩坑之基础扫盲及搭建以太坊网络私有链(单节点)
    微信朋友圈转发第三方网站带缩略图实现
    物流一站式查询之快递100篇
  • 原文地址:https://www.cnblogs.com/lin530/p/11602219.html
Copyright © 2011-2022 走看看