js数组到后台转 list数组
前台的数组格式是:
[{"credit_record_certificate_id":"452","credit_record_type":"294","credit_record_money_sum":"100","credit_record_monthly_amount":"1000","credit_record_actual_money":"1000","credit_record_deadline":"2014-11-24","credit_record_deadline_t":"2014-11-27","credit_record_remark":"备注备注"},{"credit_record_certificate_id":"452","credit_record_type":"298","credit_record_money_sum":"200","credit_record_monthly_amount":"2000","credit_record_actual_money":"2000","credit_record_deadline":"2014-11-26","credit_record_deadline_t":"2014-11-06","credit_record_remark":"备注"}]
数组格式是这样的,怎么转list的呢?下面我直接粘代码吧,能解释就解释一下,毕竟现在是上班时间!
/**
* 根据传入的json数组,返回指定包含类型的集合
*
* @param jsonStr [{id:1,name:gx},{id:2,name:wxm}]
* @param clazz
* @return
* @author xuxiaohua
*/
public static <T> List<T> jsonArrayToList(String jsonStr, Class<T> clazz) {
if (jsonStr == null || jsonStr.trim().equals("")) {
return null;
}
List<T> resultList = new ArrayList<T>();
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(java.lang.Double.class, new DoubleAdapter());
builder.registerTypeAdapter(java.lang.Integer.class, new IntegerAdapter());
builder.registerTypeAdapter(java.math.BigInteger.class, new BigIntegerAdapter());
builder.registerTypeAdapter(java.lang.Long.class, new LongAdapter());
builder.registerTypeAdapter(java.sql.Date.class, new SqlDateAdapter("yyyy-MM-dd"));
builder.registerTypeAdapter(java.sql.Timestamp.class, new SqlTimestampAdapter("yyyy-MM-dd HH:mm:ss"));
builder.registerTypeAdapter(java.math.BigDecimal.class, new BigDecimalAdapter());
Gson gson = builder.create();
//Gson gson = new Gson();
JsonParser jsonParser = new JsonParser();
JsonElement jsonElement = jsonParser.parse(jsonStr); // 将json字符串转换成JsonElement
JsonArray jsonArray = jsonElement.getAsJsonArray(); // 将JsonElement转换成JsonArray
Iterator<JsonElement> it = jsonArray.iterator(); // Iterator处理
while (it.hasNext()) { // 循环
jsonElement = (JsonElement) it.next(); // 提取JsonElement
String menu = jsonElement.toString(); // JsonElement转换成String
if(StringUtil.isBlank(menu)){
menu = null;
}
T bean = gson.fromJson(menu, clazz); // String转化成JavaBean
resultList.add(bean); // 加入List
}
return resultList;
}
上面代码方法绝对是一个工具方法
jsonArrayToList
,so,你需要建立一个工具类:JsonUtil。
好了,现在页面要传值过来了,我要用到这个方法了开始吧!
@Override
@Transactional
public String saveXd(String zxRecord){
List<McsCreRevCertificateModelRecordBean> list= JsonUtil.jsonArrayToList(zxRecord, McsCreRevCertificateModelRecordBean.class);
List<McsCreRevCertificateModelRecordBean> revCertificateModelRecordBeans=new ArrayList<McsCreRevCertificateModelRecordBean>();
for(McsCreRevCertificateModelRecordBean zxif:list){
revCertificateModelRecordBeans.add(zxif);
} for(int j=0;j<revCertificateModelRecordBeans.size();j++){
mcscrerevcertificatemodelDao.saveRecord(revCertificateModelRecordBeans.get(j));//保存方法,
}
}
js数组到后台转 list数组的更多相关文章
- angularJS前台传list数组,后台springMVC接收数组
有时候需要在前台自定义对象,然后把对象封装在list中,在传送到后台,这样的思想也比较合理 1. 前台代码 $scope.saveScore = function () { $scope.userSc ...
- js循环处理后台返回的json数组
<script type="text/javascript"> function gongdan_search(elm){ var dangqian_value=$(e ...
- discuz全局数组变量 后台各项设置 完整版
$_G 保存了 Discuz! 中所有的预处理数据 缓存能够很好的提高程序的性能,一些配置数据没必要每次都查询数据库,只要在修改了的时候更新下缓存即可. Discuz! 中所有的缓存保存在 $_G[c ...
- php中向前台js中传送一个二维数组
在php中向前台js中传送一个二维数组,并在前台js接收获取其中值的全过程方法: (1),方法说明:现在后台将数组发送到前台 echo json_encode($result); 然后再在js页面中的 ...
- js巧用apply方法实现数组最值以及合并
尽管js的apply方法在平常的使用中并不多见,但是在某些地方使用的还是很有帮助性的,这里就和大家说两个比较实用的例子:1.数组最大最小值 求数组中的最大最小值,js有相应的方法:Math.min() ...
- JS数组常用函数以及查找数组中是否有重复元素的三种常用方法
阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. var ary = new Array(&qu ...
- Struts2之提交对象数组至后台
struts2中有许多很好的特性,比如在设置好getter和setter方法后,加上前端的匹配设置,后台即可自动将前端输入的数据转换为后台的相应的对象. 如现在传入一个Person类的对象,其中Per ...
- js之数组,对象,类数组对象
许久不写了,实在是不知道写点什么,正好最近有个同事问了个问题,关于数组,对象和类数组的,仔细说起来都是基础,其实都没什么好讲的,不过看到还是有很多朋友有些迷糊,这里就简单对于定义以及一下相同点,不同点 ...
- JS 学习笔记--5---对象和数组
1.Object类型(引用类型) 不具备多少功能,但是对于在ECMAScript中存储和传递数据确实,确是很理想的选择. 创建方式:(1).使用new Object();方式创建对象,然后对对象进行设 ...
随机推荐
- BZOJ3847 : ZCC loves march
注意到集结操作相当于合并一些点 于是我们可以使用并查集 对于每一行.每一列维护一个链表,储存里面的点 查询x时,在并查集中找到x的祖先u,此时x的坐标就是u的坐标 然后扫描u所在行列的链表,依次删除每 ...
- windows phone 7 中怎样定义和使用资源(Resource)
1. 系统资源. 在wp7开发中可以看到很多使用系统资源(resource)的例子,例如默认的新page: http://blog.csdn.net/matrixcl/article/details/ ...
- COJ970 WZJ的数据结构(负三十)
WZJ的数据结构(负三十) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给你一棵N个点的无根树,点和边上均有权值.请你设计 ...
- HTTP请求中的User-Agent 判断浏览器类型的各种方法 网络爬虫的请求标示
我们知道,当用户发送一个http请求的时候,浏览的的版本信息也包含在了http请求信息中: 如上图所示,请求 google plus 请求头就包含了用户的浏览器信息: User-Agent:Mozil ...
- CSS透明度大汇总
近年来,CSS不透明算得上是一种相当流行的技术,但在跨浏览器支持上,对于开发者来说,可以说是一件令人头疼的事情.目前还没有一个通用方法,以确保透明度设置可以在目前使用的所有浏览器上有效. 这篇汇总主要 ...
- string.h文件中函数用法
下面为string.h文件中函数的详细用法: strcpy函数名:strcpy功 能: 拷贝一个字符串到另一个用 法: char *strcpy(char *destin, char *source) ...
- Html - 圆圈border
很多场景下需要对元素加入圆圈.但光靠border-radius其实还要调很久,所以做一下笔记 #binggan .mui-icon { display: inline-block; margin: 3 ...
- prelaod场景,用来显示资源加载进度
phaser.js的源码可以到它在github上的托管里去下载,游戏要用到的图片声音等素材资源请点击这里下载.Phaser的使用非常简单,只需要引入它的主文件,然后在页面中指定一个用来放置canvas ...
- 《GK101任意波发生器》升级固件发布(版本:1.0.2.build126)
一.固件说明: 硬件版本:0,logic.3 固件版本:1.0.2.build126 编译日期:2014-08-23 ====================================== 二. ...
- HITOJ 2662 Pieces Assignment(状压DP)
Pieces Assignment My Tags (Edit) Source : zhouguyue Time limit : 1 sec Memory limit : 64 M S ...