Loading

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]);
	}
}

这样就可以了。

posted @ 2019-01-23 18:18  leon_x  阅读(185)  评论(0)    收藏  举报