后台向前台响应的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);
注意我的工具类是自己写的 不具有通用性,需要自己更改数据。如果有好的方法,还请大佬指点一下。
后台向前台响应的json数据格式的一些问题的更多相关文章
- 后台接收前台传入的json 数据
引入JSONArray的类型为org.json而不是net.sf.json,笔者开始引入的是net.sf.json.JSONArray, 但JSONObject.fromObject(obj)时报错报 ...
- 处理后台向前台传递的json数据
在pom文件中添加下面三种依赖jar包 <dependency> <groupId>com.fasterxml.jackson.core</groupId> < ...
- C# 后台模拟前台post发送json数据
public static string PostMoths(string url, string param) { string strURL = url; System.Net.HttpWebRe ...
- 解决ajax的parsererror错误的终极办法(后台传给前台的数据json问题)
解决ajax的parsererror错误的终极办法(后台传给前台的数据json问题) 出现这个问题的原因是因为后台传给前台的数据出现了问题,ajax对于json的格式特别的严格 下面是会出现这个问题的 ...
- $Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互
一.ajax 1 什么是ajax:异步的JavaScript和xml,跟后台交互,都用json 2 ajax干啥用的?前后端做数据交互: 3 之前学的跟后台做交互的方式: -第一种:在浏览器 ...
- 一、Ajax 二、JSON数据格式 三、Ajax+Jquery 四、分页的实现
一.Ajax概述###<1>概述 ###<2>组成 以XMLHttpRequest为核心,发送Ajax请求和接收处理结果 以javascript为语言基础 以XML/JSON作 ...
- MVC使用ajax异步刷新时怎样输出从后台中传过来的JSON数据
前言 这几天在学习MVC使用AJAX异步刷,因为是新手.所以在js中传参数到后台以及后台返回数据到前台怎么接受,怎么前台遍历出JSON数据都开始不知道,相信新手在使用时跟我一样会遇到,这里我就和大家分 ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- iOS 应用中有页面加载gif动画,从后台进入前台时就消失了
解决办法: 在Appdelegate.m 里面有一个从后台进入前台所响应的方法,可以在该方法里post 一个通知,在加载动画里的页面接受通知,响应一定的方法即可 #pragma -mark 当程序进入 ...
随机推荐
- mybatis/tk mybatis下实体字段是关键字/保留字,执行报错
实体如下: import com.fasterxml.jackson.annotation.JsonFormat; import com.xxx.web.bean.PagesStatic; impor ...
- pyenv管理python版本
一.介绍 pyenv 是 Python 版本管理工具. pyenv 可以改变全局的 Python 版本,安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtua ...
- iOS面试考察点
)自我介绍.项目经历.专业知识.自由提问 (2)准备简历.投发简历.笔试(电话面试.).面试.复试.终面试.试用.转正.发展.跳槽(加薪升职) 1闲聊 a)自我介绍:自我认识能力 b)评价上一家公司: ...
- Red Hat Enterprise 6.5 在虚拟机上将系统语言修改为中文
Red Hat Enterprise 6.5 在虚拟机上将系统语言修改为中文 说明:本文是个人在使用RedHat时候为方便而设置的,作为学习札记记录. 在虚拟机安装RedHat时候会跳过语言的安装选项 ...
- easyui datagrid 实现单选并能取消单选
var intjavadillcheck=0; var rowjavadillselect=null; function ghm_getPageListCallback(result){ if(res ...
- 批量添加删除Windows server DNS服务 恶意域名 * A记录 指向 127.0.0.1(2019年6月5日更新)
下载链接:https://pan.baidu.com/s/1OUHyvnIfXYF0PdiT-VRyHw 密码:7gjj 注意!本解决方案在本地的Windows server服务器上把恶意域名指向1 ...
- C语言位操作中指定的某一位数置0、置1、取反
一.指定的某一位数置1 宏 #define setbit(x,y) x|=(1<<y) 二.指定的某一位数置0 宏 #define clrbit(x,y) x&=~(1< ...
- Spring之23:AbstractBeanFactory,Bean的加载
<spring源码之:循环依赖> AbstractBeanFactory的作用:别名管理,单例创建与注册,工厂方法FactoryBean支持. 由图我们直接的看出,AbstractBean ...
- Feign【token传递】
使用feign调用服务的时候,存在一个问题,比如当前服务调用A服务,在请求头中包含了某些特殊的字段信息,比如当前操作人的token信息,调用A的时候可以正常拿到token,然而在去调用B服务的时候,可 ...
- shell习题第23题:检测网卡流量
[题目要求] 写一个脚本,检测网卡流量并记录到日志,需要按照如下格式并一分钟统计一次(只需统计外网网卡,网卡名称eth0) 2019-06-07 1:11 eth0 input: 1000bps et ...