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

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

后台向前台响应的json数据格式的一些问题的更多相关文章

  1. 后台接收前台传入的json 数据

    引入JSONArray的类型为org.json而不是net.sf.json,笔者开始引入的是net.sf.json.JSONArray, 但JSONObject.fromObject(obj)时报错报 ...

  2. 处理后台向前台传递的json数据

    在pom文件中添加下面三种依赖jar包 <dependency> <groupId>com.fasterxml.jackson.core</groupId> < ...

  3. C# 后台模拟前台post发送json数据

    public static string PostMoths(string url, string param) { string strURL = url; System.Net.HttpWebRe ...

  4. 解决ajax的parsererror错误的终极办法(后台传给前台的数据json问题)

    解决ajax的parsererror错误的终极办法(后台传给前台的数据json问题) 出现这个问题的原因是因为后台传给前台的数据出现了问题,ajax对于json的格式特别的严格 下面是会出现这个问题的 ...

  5. $Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互

    一.ajax  1 什么是ajax:异步的JavaScript和xml,跟后台交互,都用json  2 ajax干啥用的?前后端做数据交互:  3 之前学的跟后台做交互的方式:   -第一种:在浏览器 ...

  6. 一、Ajax 二、JSON数据格式 三、Ajax+Jquery 四、分页的实现

    一.Ajax概述###<1>概述 ###<2>组成 以XMLHttpRequest为核心,发送Ajax请求和接收处理结果 以javascript为语言基础 以XML/JSON作 ...

  7. MVC使用ajax异步刷新时怎样输出从后台中传过来的JSON数据

    前言 这几天在学习MVC使用AJAX异步刷,因为是新手.所以在js中传参数到后台以及后台返回数据到前台怎么接受,怎么前台遍历出JSON数据都开始不知道,相信新手在使用时跟我一样会遇到,这里我就和大家分 ...

  8. 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

      先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...

  9. iOS 应用中有页面加载gif动画,从后台进入前台时就消失了

    解决办法: 在Appdelegate.m 里面有一个从后台进入前台所响应的方法,可以在该方法里post 一个通知,在加载动画里的页面接受通知,响应一定的方法即可 #pragma -mark 当程序进入 ...

随机推荐

  1. LeetCode_169. Majority Element

    169. Majority Element Easy Given an array of size n, find the majority element. The majority element ...

  2. ElasticSearch——原始文档和倒排索引

    一.原始文档 如上图所示, 第二象限是一份原始文档,有title和content2个字段,字段取值分别为”我是中国人”和” 热爱共X产党”,这一点没什么可解释的.我们把原始文档写入Elasticsea ...

  3. (十七)super关键字(转)

    --本文摘自孤傲苍狼博客. 一.super关键字

  4. 金仓Kingbase数据库网页数据维护分析工具

    金仓Kingbase是优秀的国产数据库产品,在能源,政务,国防等领域广泛使用, 现在TreeSoft数据库管理系统已支持Kingbase了,直接在浏览器中就可以操作查看Kingbase数据了,十分方便 ...

  5. 泰乐事(Telos)白皮书中文版 <零> 封面及目录

    <泰乐事白皮书> 一个可持续发展的去中心化EOSIO网络 作者:道格拉斯·合恩 泰乐事(Telos)—— 事物的终极目标. Telos一词来源于希腊语ΤΈΛΟΣ. “一颗橡果的终极目标是成 ...

  6. redis windows 扩展Redis igbinary 下载地址

    http://windows.php.net/downloads/pecl/releases/redis/3.1.2/ http://windows.php.net/downloads/pecl/re ...

  7. 用Inno setup制作以管理员权限启动的安装包

    inno setup制作的安装包,默认是不需要管理员权限启动的.我们制作安装包,往往需要做一些设置工作,这些设置工作可能用到管理员权限.使用Resource Hacker修改inno setup资源, ...

  8. c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just show master status

    2018-12-27 08:39:49.808 [destination = example , address = /127.0.0.1:3308 , EventParser] WARN c.a.o ...

  9. python线程事件Event(30)

    在python项目开发中,线程thread使用是比较常见的,在前面的文章中我们介绍了 python线程的创建 以及 线程互斥锁 ,今天还要额外介绍一个与线程相关的内容 – 事件Event. 一.pyt ...

  10. Java Foreach用法

    java中的while.for.if.switch等用法和c语言差不多,所以我们关注下foreach就行了. 一.创建ForeachTest.java public class ForeachTest ...