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

 更新时间:2017年01月10日 09:42:39   作者:Sara  
这篇文章主要介绍了jQuery使用ajax方法解析返回的json数据功能,结合实例形式分析了jQuery ajax操作流程及json数据处理技巧,需要的朋友可以参考下

本文实例讲述了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似乎有这个要求。

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

PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

在线json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《jQuery操作json数据技巧汇总》、《jQuery form操作技巧汇总》、《jQuery常用插件及用法总结》、《jQuery扩展技巧总结》、《jQuery表格(table)操作技巧汇总》及《jquery选择器用法总结

希望本文所述对大家jQuery程序设计有所帮助。

相关文章

  • 模拟多级复选框效果的jquery代码

    模拟多级复选框效果的jquery代码

    今天又次体会到jquery的强大了,做了个多级复选框的效果,代码块分两块:一是全选的效果、二是当前复选框的父框根据当前框的兄弟是否全选中来决定父框是否选中
    2013-08-08
  • jquery实现用户信息修改验证输入方法汇总

    jquery实现用户信息修改验证输入方法汇总

    这篇文章主要介绍了jquery实现用户信息修改验证输入方法,实例汇总了jquery常用的提交、验证、判定、修改等相关技巧,非常实用,需要的朋友可以参考下
    2015-07-07
  • jQuery 渐变下拉菜单

    jQuery 渐变下拉菜单

    利用jQuery来实现,其实就几行代码的事。即便如此,由于js语言的思维方式,还是一直没有把握好,加上一个css的问题,导致弄了好久才出来效果。
    2009-12-12
  • jQuery实现数字华容道小游戏(实例代码)

    jQuery实现数字华容道小游戏(实例代码)

    这篇文章主要介绍了jQuery实现数字华容道小游戏功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • jquery自定义插件开发之window的实现过程

    jquery自定义插件开发之window的实现过程

    这篇文章主要介绍了jquery自定义插件开发之window的实现过程的相关资料,需要的朋友可以参考下
    2016-05-05
  • jQuery点击出现爱心特效

    jQuery点击出现爱心特效

    这篇文章主要为大家详细介绍了jQuery点击出现爱心特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • jQuery Dialog 取消右上角删除按钮事件

    jQuery Dialog 取消右上角删除按钮事件

    这篇文章主要介绍了jQuery Dialog 取消右上角删除按钮事件的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • jquery实现烟花效果(面向对象)

    jquery实现烟花效果(面向对象)

    这篇文章主要为大家详细介绍了jquery面向对象实现烟花效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • jquery对象和DOM对象的区别介绍

    jquery对象和DOM对象的区别介绍

    jquery对象和DOM对象在使用过程很频繁,正是因为如此,好多朋友都不知道它们之间有什么区别,下面为大家详细介绍下,希望对大家有所帮助
    2013-08-08
  • EasyUI修改DateBox和DateTimeBox的默认日期格式示例

    EasyUI修改DateBox和DateTimeBox的默认日期格式示例

    本篇文章主要介绍了EasyUI修改DateBox和DateTimeBox的默认日期格式示例,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01

最新评论