您的位置:首页 > 产品设计 > UI/UE

前台接收后台传的json,json中value的值为一个数组

2017-08-07 16:21 295 查看
前段时间有个需求是做一个echart的折线图,有多根折线,数量不定,并且横坐标是通过条件查询获得的,echarts2折线图的data需要传入一个数组,基于以上情况,我需要从后台接收json,且json的value为数组。

我尝试了许多写法,以下写法是切实有效的:

后台:

List<String> sums = new ArrayList<String>();
List<String> dates = new ArrayList<String>();
......
//注意这里要toArray(),不然前台获取时会不认做array
map.put("sums", sums.toArray());
map.put("dates", dates.toArray());
return net.sf.json.JSONArray.fromObject(map);


前台:

//这里用的是easyui,获取下拉列表的值,有多少值就有多少折线
var rows = $("#searchLines").datalist("getRows");
$.post(
"",
{},
function(data){
var json = eval(data);
var legend = new Array();
//这里要加一个json[0],因为后台传过来的是一个json数组
var xAxis = json[0]["dates"];
var optionSrc = {
...,
series :[]
};
$.each(rows,function(n,value){
legend
= value.text;
var temp = new Array();
temp = json[0][value.text];
if(temp.length==0){
temp = [];
}
var ser =  {
name:value.text,
type:'line',
data:temp
};
optionSrc.series.push(ser);
});
}
,'json');


特此记录一下这种写法,方便查验。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: