不多BB直接上代码加过程:我通过SSH的离线查询查询结果
PageBean<Analysis> pageBean = customerService.findByPageSource(detachedCriteria, currPage, pageSize);
查询到的结果为如下:
Analaysis [ana_id=0, ana_name=电话营销, ana_quantity=7]
Analaysis [ana_id=1, ana_name=网络营销, ana_quantity=3]
显然这不是我们想到传到前端的JSON数据格式:
这一部分我也是想了有一会儿,如何把这个数据转变成为Echart能够接受的数据.
Echart前端能够接受的数据形式为:
[{"name":["电话营销","网络营销"],"value":[7,3]}]
让后我就慢慢往上面靠:
我定义两个数组:通过遍历将ana_name的数据放到names数组中.将ana_value的数组存放到ana_quantity中
然后将values[] , names[] 两个数组 放入list容器中.方便下面转化为JSON格式的数据
List<Analysis> list = pageBean.getList();
List<EcharData> list2 = new ArrayList<EcharData>();
EcharData data = new EcharData();
Long[] values = new Long[list.size()];
String[] names = new String[list.size()];
for(int i=0;i<list.size();i++) {
Long ana_quantity = list.get(i).getAna_quantity();
String ana_name = list.get(i).getAna_name();
values[i]=ana_quantity;
names[i]=ana_name;
data.setValue(values);
data.setName(names);
}
list2.add(data);
后端最后的步骤就只剩下:将list中的2个对象转化为JSON格式的数据
JSONArray jsonArray = JSONArray.fromObject(list2);
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
ServletActionContext.getResponse().getWriter().println(jsonArray);
到这个地方后台的数据已经转化为JSON格式的数据.
[{"name":["电话营销","网络营销"],"value":[7,3]}]