有这样一种情况,很多需求需要从页面传回一个对象数组到控制器
var obj=[{"name":"xxx","age":"xxx"},{"name":"xxx","age":"xxx"}] JSON.stringify(obj) //就、将数据转成json串传值
那这样控制拿到的就是一个string的字符串,这样很尴尬,难道要截取吗?
也不是不行,可是这样第一很麻烦,第二数据量很大怎么办?
但如果刚好是一个对象,那么控制器可以直接把它转换成实体对象
首先控制器定义一个String类型的字符串拿到页面请求的参数(obj)
@RequestMapping("/XXXX") @ResponseBody public ResultEntity<ServiceMessage> lendtrumbuy( String book) { JSONArray platformList = JSON.parseArray(obj);
//这里完全有可能是多个对象,所以需要循环 for (Object jsonObject : platformList) {
//每次循环把他转换成给实体对象,到这里就拿到正常的数据了 LoanInfoPageEntity loanEntity =
JSONObject.parseObject(jsonObject.toString(), LoanInfoPageEntity.class);
//这里每次拿到参数可以去条用service, jg = cploanbuyservice.borrowandbuy(loanEntity, reader.getRecno()); }
//后面就是返回结果去页面,我这里也我用的是工具类,就不写了 }
所以大概转换就两步
1、JSONArray platformList = JSON.parseArray(obj); 将拿到的参数转换成json数组
2、LoanInfoPageEntity loanEntity = JSONObject.parseObject(jsonObject.toString(), LoanInfoPageEntity.class);如果是多个就需要循环将它转换成对象