后台向前台响应的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 当程序进入 ...
随机推荐
- PAT 甲级 1051 Pop Sequence (25 分)(模拟栈,较简单)
1051 Pop Sequence (25 分) Given a stack which can keep M numbers at most. Push N numbers in the ord ...
- 关于采样率&位深&码率&无损的一些心得
转载自:https://blog.csdn.net/Marenow/article/details/85253283 记笔记,记下来自己的一些关于音频基础知识的总结. 采样率外界的声音都是模拟信号,在 ...
- Oracle客户端下载地址
https://www.oracle.com/database/technologies/instant-client/downloads.html
- (七)Centos之链接命令
一.链接命令:ln (link) ln -s [源文件] [目标文件] 功能描述:生成链接文件 选项: -s 创建软链接 二.硬链接 硬链接特征: 1,拥有相同的i节点和存储block块,可以看作是 ...
- (六)Centos之目录作用介绍
我们先切换到系统根目录 / 看看根目录下有哪些目录 这里首先看下 根目录/ 下的 bin 和 sbin: 在user下也有bin和sbin 根目录下的bin和sbin,usr目录下的bin和sbin, ...
- 函数 、while、case、select 语句结合
[root@bogon ~]# cat menue.sh #!/bin/bash yum_list(){ #列出所有yum安装包 yum repolist [ $? -eq ] && ...
- DTCMS,添加文章时,内容中第一张图片作缩略图,并且等比例缩放图片
DTCMS,添加文章时,内容中第一张图片作缩略图 admin/article/article_edit.aspx.cs 导入: using System.Drawing;using System.Dr ...
- iOS-UITextField和UITextView隐藏键盘
UITextField和UITextView隐藏键盘 71 views, IOS DEV, by admin. self._textField.returnKeyType=UIReturnKeyDon ...
- springboot-mybatis-pagehelper(分页插件)
依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://m ...
- 在MAC上安装gitlab
转载引用:https://www.cnblogs.com/floodwater/p/10138265.html 1.安装docker 2.安装gitlab-ce 1.安装docker 下载地址: ht ...