Echarts请求不同格式的json数据处理

简介: Echarts请求不同格式的json数据处理

在前面已经说到过关于Echarts请求json数据处理:

【前端统计图】echart折线图ajax请求json数据:

https://www.jianshu.com/p/9e5c7e2cff05

今天写第二种json格式,后面遇到会继续补充:


先看一下json数据格式:

[
    {
        "doneNum": 130,
        "date": "2019-01"
    }, {
        "doneNum": 80,
        "date": "2019-02"
    }, {
        "doneNum": 90,
        "date": "2019-03"
    }, {
        "doneNum": 110,
        "date": "2019-04"
    }, {
        "doneNum": 60,
        "date": "2019-05"
    }, {
        "doneNum": 70,
        "date": "2019-06"
    }, {
        "doneNum": 120,
        "date": "2019-07"
    }, {
        "doneNum": 80,
        "date": "2019-08"
    }, {
        "doneNum": 83,
        "date": "2019-09"
    }, {
        "doneNum": 84,
        "date": "2019-10"
    }, {
        "doneNum": 105,
        "date": "2019-11"
    }, {
        "doneNum": 52,
        "date": "2019-12"
    }
]

对于后端传过来的这种类型的json数据,前端需要做一些处理。

步骤说明:

1:为x轴和y轴分别定义一个数组:类别数组(实际用来盛放X轴,y轴坐标值)

var names = [];    //类别数组(实际用来盛放X轴坐标值)    
var series = [];

2:在ajax请求成功之后,在success的方法里面对请求的json数据进行处理,首先要遍历一下data数据(请求成功时执行该函数内容,data即为服务器返回的json对象),对数据进行遍历并且挨个取出类别并填入上一步已经定义好的类别数组里面。

 $.each(data, function (index, item) {
                names.push(item.date);    //挨个取出类别并填入类别数组
                series.push(item.doneNum);
            });

3:进入到echarts的代码,找到x轴和y轴所在的位置,将第一步的类别数组替换:

xAxis: [{
type: 'category',
 data: names
}],
series: [{
name: '心率',
 type: 'line',
 data: series
}]

这种json数据的处理方式和以下写法是相类似的:Echarts饼状图交互数据:https://www.jianshu.com/p/7124385eebbd,可以参考一下:

下面是完整的demo代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
        <script src="https://cdn.bootcss.com/echarts/4.2.1-rc1/echarts.min.js" type="text/javascript"></script>
    </head>
    <body>
        <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
        <div id="main" class="col-md-12  col-sm-12 col-xs-12" style="height: 400px;"></div>
        <script>
            // 折线图
             var names = [];    //类别数组(实际用来盛放X轴坐标值)    
             var series = [];
            $.ajax({
                url: "test.json",
                data: {},
                type: 'GET',
                success: function(data) {
             //请求成功时执行该函数内容,data即为服务器返回的json对象           
            $.each(data, function (index, item) {
                names.push(item.date);    //挨个取出类别并填入类别数组
                series.push(item.doneNum);
            });
            console.log(JSON.stringify(data))
            hrFun(data);
                },
            });
            // 心率
            var hrChart = echarts.init(document.getElementById("main"));
            function hrFun(data) {
                hrChart.setOption({
                    color: ['#3398DB'],
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: { // 坐标轴指示器,坐标轴触发有效
                            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
                        }
                    },
                    legend: {
                        data: ['心率值']
                    },
                    grid: {
                        left: '3%',
                        right: '20%',
                        bottom: '20%',
                        containLabel: true
                    },
                    xAxis: [{
                        type: 'category',
                        data: names
                    }],
                    yAxis: [{ // 纵轴标尺固定
                        type: 'value',
                        scale: true,
                        name: '心率值',
                        max: 140,
                        min: 0,
                        splitNumber: 20,
                        boundaryGap: [0.2, 0.2]
                    }],
                    series: [{
                        name: '心率',
                        type: 'line',
                        data: series
                    }]
                }, true);
            }
        </script>
    </body>
</html>

效果如下所示:


相关文章
|
3月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
30 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
1天前
|
存储 JSON DataWorks
DataWorks产品使用合集之DataWorks将 MongoDB 中的数组类型写入到 DataWorks 的单个字段时,表示为字符串格式而非 JSON 格式如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
9 3
|
16天前
|
存储 JSON NoSQL
MongoDB的文档存储格式BSON和JSON的区别
MongoDB的文档存储格式BSON和JSON的区别
|
28天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
2月前
|
JSON 数据格式
糊涂工具类(hutool)post请求设置body参数为json数据
糊涂工具类(hutool)post请求设置body参数为json数据
94 1
|
2月前
|
JSON JavaScript 前端开发
优化你的 HTTP 请求:JSON 与 Form-data 比较
在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:JSON与Form-data。尽管它们的终极目标一致,即数据传输的高效性和可靠性,但它们各自所具备的特点和应用情境却大相径庭,构成了数据传输的两个主要途径。
|
3月前
|
JSON fastjson Java
FastJSON操作各种格式的JSON数据
FastJSON处理各种格式的JSON数据
|
3月前
|
JSON C# 数据格式
C# 处理gzip格式的json
C# 处理gzip格式的json
21 0
|
4月前
|
JSON 数据格式
将json格式的数据快速转换为excel,使用在线工具轻松搞定
将json格式的数据快速转换为excel,使用在线工具轻松搞定
151 0
|
4月前
|
JSON 关系型数据库 MySQL
这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
【1月更文挑战第17天】【1月更文挑战第84篇】这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
34 1