jQuery使用ajax方法解析返回的json数据功能示例


Posted in Javascript onJanuary 10, 2017

本文实例讲述了jQuery使用ajax方法解析返回的json数据功能。分享给大家供大家参考,具体如下:

最近在用jQuery的ajax方法传递接收json数据时发现一个问题,那就是返回的data数据,有时候可以直接作为json数据使用,可有时候又不行。查了些资料,解释如下:

$.ajax({
  url: ajaxurl,
  type: "POST",
  success: function(data){
   //假设返回的json数据里有status及info2个属性
   //有时候可以直接ajaxobj.status或者ajaxobj["status"]去访问
   //但有时候,却要通过eval()或者 $.parsejson();才可以通过ajaxobj.status访问,而且这种情况下,需要是complete而不是success
   ajaxobj=eval("("+data+")");
   //或者$.parsejson()
   //var ajaxobj = $.parsejson(data);
   if(ajaxobj.status=="0")
   {
    alert("请登陆.");
   }
   else if(ajaxobj.status=="1")//未绑定微博
   {
    alert(ajaxobj.info);
   }
   return true;
  },
  error:function(ajaxobj)
  {
     if(ajaxobj.responseText!='')
     alert(ajaxobj.responseText);
  }
});

先说明第一种情况:

能够直接 data.属性名访问的情况,服务器端代码一定是直接return的一个常量字符串。

什么是常量字符串呢,常量字符串就是指直接用“”组成的字符串,没有定义String 变量直接把一串“”print到前台的情况,就可以直接data.属性名访问,而且jquery端只要写success就可以拿到。

下面是造成要eval并且不能进入success的原因:

这种情况是因为服务器端向外print的时候是一个String对象,通常此类问题在我的代码里是因为后台json比较复杂,在组织的时候我用到了StringBuffer,然后最后print的时候print的是StringBuffer对象的toString,所以就相当于print了一个String对象

这种情况下jquery的ajax方法就不会进入success方法,只能用complete接收,并且想要解析data里的json数据的话,必须对data.responseText进行eval ()或者 $.parsejson();

除此两点,还有需要注意的是,如果你使用的是jq1.4,那么他对json的格式有着更严格的要求,所有的key和属性都要用双引号标注起来,虽然key不用双引号原生的js是允许的,但是jq1.4似乎有这个要求。

以上是我个人的想法跟理解,若有不同见解欢迎指教.

Javascript 相关文章推荐
js 省地市级联选择
Feb 07 Javascript
函数式 JavaScript(一)简介
Jul 07 Javascript
JS网页在线获取鼠标坐标值的方法
Feb 28 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
Jun 08 Javascript
D3.js中data(), enter() 和 exit()的问题详解
Aug 17 Javascript
JavaScript中apply方法的应用技巧小结
Sep 29 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
May 05 Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 Javascript
在vue中使用G2图表的示例代码
Mar 19 Javascript
react 生命周期实例分析
May 18 Javascript
vue 函数调用加括号与不加括号的区别
Oct 29 Javascript
ajax实现动态下拉框示例
Jan 10 #Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
Jan 10 #Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 #Javascript
JavaScript获取键盘按键的键码(参照表)
Jan 10 #Javascript
详解vue之页面缓存问题(基于2.0)
Jan 10 #Javascript
jQuery验证表单格式的使用方法
Jan 10 #Javascript
Html5 js实现手风琴效果
Apr 17 #Javascript
You might like
PHP微框架Dispatch简介
2014/06/12 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
Jquery组件easyUi实现表单验证示例
2016/08/23 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
2017/02/14 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
在Python中执行系统命令的方法示例详解
2017/09/14 Python
python学习基础之循环import及import过程
2018/04/22 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
python机器学习之KNN分类算法
2018/08/29 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Python 调用 Windows API COM 新法
2019/08/22 Python
浅谈django 重载str 方法
2020/05/19 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
实习教师自我鉴定
2013/09/27 职场文书
分厂厂长岗位职责
2013/12/29 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
毕业大学生自荐信
2014/06/17 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
2019学校运动会开幕词
2019/05/13 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
MySQL transaction事务安全示例讲解
2022/06/21 MySQL