ajax同步异步请求与JSON数据解析
来源:互联网 发布:js bind call apply 编辑:程序博客网 时间:2024/05/02 16:41
今天接到一个任务,将json文件中的数据读取出来,填到echars的环形图中。。。。
中间遇到了很多问题,整理一下
json文件:
{"circle": [{"name": "名称1","value": 15}, {"name": "名称2","value": 25}, {"name": "名称3","value": 35}],"table": [ {"metting": [{"name": "会议室1","number": 3}, {"name": "会议室2","number": 1}]}, {"court": [{"name": "会议室3","number": 7}, {"name": "会议室4","number": 14}]}]}
使用ajax从json文件中读取数据
var strarr;
$.ajax({type: "get",url: "bottom.json",dataType: "json",async: true,success: function(str) {strarr = str.circle;var result = str.table;console.log(strarr);}});
//下面是将strarr数据插入到echars的环形图中
开始时使用异步方式请求数据,使用chrome浏览器可以看到控制台打印出的数组,而当使用ie浏览器时,便无法打印出数据,因为strarr变量并没有被赋值成功
这里就要说一下ajax请求的同步和异步问题。async:true,默认为true,即进行异步请求,其作用是当ajax向后台发送请求后,会在sucess处等待后台的返回值,此时其之后的代码仍然会继续执行,此时就会出现多线程执行的情况,使用异步可以加快执行的效率。
而现在的情况是,需要将ajax的返回值赋值给strarr,然后将其插入到echarts的环形图中。如果进行异步请求,ajax方法还没有将得到的值赋值给strarr的情况下就已经将其插入到环形图中了,这样显然是不对的。这时就需要用到同步请求,等待执行的ajax请求方法得到返回值之后才执行之后的代码。
解析json数据:
获取table下的number对应的数据有两种方式:
result = str.table; result[0].metting[0].number;
或者:
result[0].metting[2]["number"]
附:echarts中的环形图中需要的数据格式是 name:name,value:value (str.circle)
0 0
- ajax同步异步请求与JSON数据解析
- struts2+jquery+Ajax异步请求发送与解析json数据
- struts2+jquery+Ajax异步请求发送与解析json数据
- jQuery.ajax异步变成同步的请求JSON数据例子
- 同步异步网络请求封装以及数据JSON解析
- jquery ajax 同步/异步 json数据解析 兄弟节点查找
- Ajax异步与同步请求
- Ajax 请求同步与异步
- Ajax基础 同步请求与异步请求
- 论:ajax 同步请求与异步请求
- IOS 同步异步请求JSON数据
- jquery ajax异步请求json数据
- 使用Ajax异步加载请求JSON数据
- jquery ajax请求同步与异步问题
- ajax 同步异步请求
- Ajax异步&同步请求
- AJAX 同步异步请求
- ajax同步/异步请求
- Glide.placeholder()图片会显示不出来
- Java Web开发Model1(Jsp+JavaBean)
- 软件测试实践-性能测试
- 深度学习框架Keras的安装
- 每天学习openstack(13)
- ajax同步异步请求与JSON数据解析
- python爬虫新闻的学习笔记
- shiro 多realm
- 高德百度坐标系转换方法
- vboxclient the virtualbox kernel service is not running.Exiting.解决办法
- XStream的日期转换XStreamDateConverter
- 操作系统与网络实现 之二十(甲)
- 程序员必读书单 1.0 ----转自Lucida
- 快速理解RequireJs