常用于从数据库查出某字段的集合给前端做echart图表分析
为了节约开销,在一个控制器中查出所有需要的集合并放在一起以字符的形式传到前端
@ResponseBody
@RequestMapping(value="showchart/{Userid}")
public String Showchart(@PathVariable("Userid") String Userid) {
String s="";
int userid=Integer.parseInt(Userid);
Archive archive;
List<Archive> list=as.getmylist(userid);
Iterator<Archive> i=list.iterator();
List<Float> chollist = new ArrayList<>();
List<Float> fbslist = new ArrayList<>();
List<Integer> ratelist = new ArrayList<>();
List<String> timelist = new ArrayList<>();
while(i.hasNext()) {
archive=i.next();
chollist.add(archive.getChol());
fbslist.add(archive.getFbs());
ratelist.add(archive.getThalach());
timelist.add(archive.getTime());
prolist.add(archive.getProbability());
}
s=s+chollist+"|"+fbslist
+"|"+ratelist+"|"+timelist;
return s;
}
note:List初始化为null的话会报空异常,所以写规范
前端ajax请求,可以看一下数据
看到这个数据后,直接split分割了,放到echarts里,画不出图
$.ajax({
type:"get",
url:"../showchart/${Userid}",
async:false,
success:function(data){
chol=data.split("|")[0];
fbs=data.split("|")[1];
rate=data.split("|")[2];
time=data.split("|")[3];
}
});
原因就是分割后的字符串任然是一个字符串,只是他长的比较迷惑,因为是List toString后[10,20,15]这样的格式容易让人直接使用
那既然这是一个字符串,就直接对他处理吧
time=time.replace("[","").replace("]","");
var timedata=time.split(",");
先去掉首位的"[" "]"后继续分割,这样就是妥妥的数组了就可以使用了。bye