最近在写后台向前台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);

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

最新文章

  1. 搭建一个简单的mybatis框架
  2. esayui
  3. MATLAB - 练习程序,求灰度图像均值、最大、最小数值
  4. 如何查询拥有执行某个Tcode权限所有人员
  5. 推荐10款非常优秀的 HTML5 开发工具
  6. BindingNavigator操作DatagridView的数据
  7. 2016032701 - ubuntu安装jdk
  8. java PropertyChangeSupport委托帧听类的使用
  9. 用Cornerstone配置SVN
  10. C# 基础小知识之yield 关键字 语法糖
  11. 转 ORACLE数据库它可以存储 中文 字节或字符
  12. angular路由操作中&#39;#&#39;字符的解决办法
  13. 新概念英语(1-43)Hurry up!
  14. axios的兼容性处理
  15. SoapUI 学习总结-01 环境配置
  16. C# — Socket通信实现
  17. C#中ICollection介绍
  18. AMQP消息队列之RabbitMQ简单示例
  19. spring boot 中添加mongodb支持
  20. 解决mybatis generator无法覆盖XML

热门文章

  1. 取数据超过内存限制的问题-解决方案(sample,takeSample,filter)
  2. Node中使用MySQL报错:TypeError: Cannot read property &#39;query&#39; of undefined
  3. CGAffineTransform的使用大概:
  4. NET-使用Js调用WebService
  5. python:python2与python3共存时,pip冲突,提示Fatal error in launcher: Unable to create process using &#39;&quot;d:\python27\python2.exe&quot; &quot;D:\Python27\Scripts\pip2.exe&quot; &#39;
  6. React16+配置打包目录
  7. 域名购买、SSL证书申请使用和本地服务映射外网
  8. Node express post 大小设置
  9. 最新 荔枝java校招面经 (含整理过的面试题大全)
  10. 最新 珍岛java校招面经 (含整理过的面试题大全)