使用fastjson 获取json字符串中的数组,再转化为java集合对象

      最近,使用layui做一个导出功能,尽管有插件提供导出,但是呢,由于数据中有状态是数字,例如1显示是已支付,但是导出时也希望这样显示,但是导出的还是1;

lz没有找到改下这个插件的办法,只能利用服务端生成,再响应客户端,进行下载Excel文件。

由于系统采用的是ajax方法传输参数,无法以以往方法通过流响应即可。

 

一般常用的文件下载方式:

1 post请求,使用form标签进行提交,服务端已流输出,即可下载文件;适用于数据量不大场景;

2 ajax post请求,采用缓存,将生成的文件存放,成功后采用location.href;此方法后处,遇到大文件,图片场景,可以使服务端性能提高;

3 ajax post请求,将生成的文件存放服务端路径,成功后采用location.href;跟第二种大同小异。。

   

似乎跑题了,前台js封装json数据,

var res={"merchantNo": merchantNo,"startTime":startTime,"endTime":endTime,"bills":bills};
bills是一个数组;

后台controller接收;

 

使用fastjson 获取json字符串中的数组,再转化为java集合对象

使用fastjson 获取json字符串中的数组,再转化为java集合对象

 

 

获取json集合 

JSONObject jsonObject = JSONObject.parseObject(res);
JSONArray jsonArray = (JSONArray)jsonObject.get("bills");
List<BillVo> bills = (List<BillVo>)JSONArray.parseArray(jsonArray.toString(), BillVo.class);