关于echarts的timeline图: ajax获取后台的map类型的jsonarray数据

fengji2014 超级会员 fengji2014 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在做timeline的时候,在后台写了个map,把时间轴参数作为key,value是 包括了x轴和series参数 的一个集合 ,然后传了个map的jsonarray到前台,不知道怎么在前台对应的位置获取了,求指导。比照官方例子,在例子的对应位置用ajax获取数据。


package echarts.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;

import echarts.bean.Record;
import echarts.bean.Starttime;
import echarts.dao.RecordDAO;

public class RecordServlert extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

RecordDAO redao = new RecordDAO();
ArrayList<Starttime> arr = redao.getStarttime();
Map<String, ArrayList<Record>> map = redao.getAll(arr);

JSONArray json=JSONArray.fromObject(map);
response.setContentType("text/html; charset=utf-8");
System.out.println("转成json");
System.out.println(json.toString());
//返回给前段页面
PrintWriter out = response.getWriter();
out.print(json);
out.flush();
out.close();


}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request, response);

}


}


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>Echarts_demo01</title>
<script src="./js/echarts.js"></script>
<script src="./js/esl.js"></script>
<script src="./js/jquery-1.7.2.min.js"></script>

</head>

<body>

<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="height:400px;width:700px;"></div>

<script type="text/javascript">

// 基于准备好的dom,初始化echarts图表
var myChart = echarts.init(document.getElementById('main'));
myChart.showLoading({text:'正在加载数据'});

option = {
baseOption: {
timeline: {
// y: 0,
axisType: 'category',
// realtime: false,
// loop: false,
autoPlay: true,
// currentIndex: 2,
playInterval: 1000,
// controlStyle: {
// position: 'left'
// },
data:(function(){
var arr=[];
$.ajax({
type : "post",
async : false, //同步执行
url : "RecordServlet",
data : {},
dataType : "json", //返回数据形式为json
success : function(result) {
console.log("s");
if (result) {
for(var i=0;i<result.length;i++){
console.log(result[i].starttime);
arr.push(result[i].starttime);
}
}

},
error : function(errorMsg) {
alert("图表请求数据失败!");
myChart.hideLoading();
}
})
return arr;
}),


label: {
formatter : function(s) {
return (new Date(s)).getFullYear();
}
}
},
title: {
text: '每日各地市漫游次数统计'
},
tooltip: {},
legend: {
x: 'right',
data: ['漫游次数'],

},
calculable : true,
grid: {
top: 80,
bottom: 100
},
xAxis: [
{
type:'category',
axisLabel:{'interval':0},
data:[],
splitLine: {show: false}
}
],
yAxis: [
{
type: 'value',
name: '次数(次)',
// max: 53500
max: 20000
}
],
series: [
{name: '漫游次数',
type: 'bar',
data:[]
},
]
},

};
// 为echarts对象加载数据
myChart.setOption(option);

getChartData();

function getChartData(){
var options = myChart.getOption();
$.ajax({
type : "post",
async : false, //同步执行
url : "${pageContext.request.contextPath}/RecordServlet",
data : {},
dataType : "json", //返回数据形式为json
success : function(result) {
if (result) {
for(var i=0;i<result.length;i++){
options.xAxis[0].data = result[i].record.name;
options.series[0].data = result[i].record.num;

myChart.hideLoading();
myChart.setOption(options);
}
}

},
error : function(errorMsg) {
alert("请求数据失败!");
myChart.hideLoading();
}
})
}

</script>



</body>
</html>

...全文

相关推荐

SSM+LayUI+ECharts酒店管理系统课设:从源码跑通到答辩加分实战

JavaWeb课程设计中的酒店管理系统,常常需要整合SSM框架、LayUI后台界面与ECharts数据可视化。理解分层架构与请求链路,是驾驭这类项目的起点:Controller负责参数接收、Service管理业务事务、Mapper完成持久化映射,Spring容器则统一管理数据源与组件扫描。掌握MyBatis字段映射、MySQL字符集与驱动版本等基础配置,才能让项目稳定运行。实际开发中,LayUI表格组件要求固定的JSON返回格式,ECharts图表则依赖后端聚合查询结果,两者都是前后端数据对接的关键环节。这

莱夢

招聘数据分析全流程:Hadoop+爬虫+SpringBoot实现

大数据分析正在成为企业决策和人才市场洞察的核心能力,而数据采集、分布式存储与离线计算则是构建数据价值链条的基础。爬虫技术用于高效获取海量半结构化数据,Hadoop生态提供高容错的分布式存储与并行计算能力,通过MapReduce完成数据清洗、去重和特征提取,再结合SpringBoot构建Web服务,将分析结果以可视化方式呈现。这类技术组合广泛应用于招聘信息挖掘、行业薪资分析、技能需求图谱构建等场景,尤其适合需要处理多源异构数据的工程实践。本文基于招聘网站真实数据,完整拆解从爬虫采集、HDFS存储、MapRed

weixin_34006965

5-实验指导书_PID控制算法.docx

5-实验指导书_PID控制算法.docx

2601_97105083

高校技术转移办公室人员如何利用平台提升技术成果的精准推介效率?.docx

高校技术转移办公室人员如何利用平台提升技术成果的精准推介效率?

BIZKEEN

产业园区运营负责人如何精准对接企业技术需求与科技成果?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论 2
收藏 已收藏
分享
返回顶部
fengji2014 超级会员
Web 开发 81,108 成员 341,721 内容