Echarts实时获取后台数据之二:获取后台数据
前台去获取后台数据,如果在jsp文件中,可以使用el表达式遍历,如果在js文件中,又不想使用json,那么传过去的就是字符串了,需要自己处理,自己两种都尝试了。建议还是使用json格式。
字符串形式
在js中获取后台数据有很多中方式,这里只提供两种方式,一是将js代码和html放在同一文件中,二是将js代码放在单独的文件中。
如果将js文件放在html代码中,只需要这样:
var data = '${map}'
其中map是后台存储的数据是的名称,这时获得的data是一个字符串,需要自己处理成为需要的数据,比如下面的代码:
var t1 = data.replace(/=/g, ",");
var t2 = t1.replace(/{|}/g, "");
var arr = t2.split(",");
先用正则表达式将一些字符替换掉,在分割为数组就可以获取到数据了。
但是如果将js代码放在单独的文件中,这种方法就行不通了,可以放一个input标签,这是为"hidden",并给id,就可以获取了:
var data = document.getElementById('data').innerHTML;
然后像上面一样处理。
JSON格式
首先,我的数据格式是一个map:
{生活=150.0, 计算机=600.0, 社科=200.0, 艺术=99.0, 文学=340.0}
使用json,首先要在后台将数据转化为json格式,json使用唯一比较麻烦的就是导入包,包很多,找的话并不是很好找,这里将json要用的包放在这里以供下载:
链接:https://pan.baidu.com/s/1qz6IRK_v5FEFSz0AuND_Nw 密码:9aft
使用的话也很方便:
JSONArray json = JSONArray.fromObject(map);
其中map是你需要转换的数据,转换后的数据格式是:
[{"生活":150,"计算机":600,"社科":200,"艺术":99,"文学":340}]
然后将数据放入request域中。
前台通过前面两种方法获数据,前面讲到获取到的只是字符串,即json文本,需要将json文本转换为JavaScript对象:
var jsonObj = eval ("(" + data + ")");
然后就可以直接进行遍历了:
for ( var index in jsonObj) {
for(var key in jsonObj[index]){
alert(key + "=" + jsonObj[index][key]);
}
}
这样就可以了。

浙公网安备 33010602011771号