Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法


Posted in Javascript onMarch 27, 2010

下面说一下,最近在使用jquery 1.4中使用$.ajax()方法解析json对象遇到的问题。

Json对象是:

[{name:'二手房出售',infoCount:0,pageUrl:'/ershoufang'},{name:'二手房求购',infoCount:0,pageUrl:'/qiugou'},{name:'二手房装修',infoCount:0,pageUrl:'/esfzhuangxiu'},{name:'二手回收',infoCount:0,pageUrl:'/huishou'},{name:'二手摩托车',infoCount:0,pageUrl:'/motor'},{name:'二手汽车求购',infoCount:0,pageUrl:'/ershoucheqg'},{name:'二手汽车转让',infoCount:9,pageUrl:'/ershouche'},{name:'二手市场',infoCount:0,pageUrl:'/ershoushichang'}]

不知道大家有没有发现这段json对象的问题。这样的写法在js脚本和jquery 1.4之前的版本都是没有问题的。因为在1.3及更早版本中,jQuery通过javascript的eval方法来解析json对象。在1.4中,jQuery使用了更严格的方法来解析json。所有的内容都必须使用双引号。

这点从jQuery.parseJSON(json) 可以看出,parseJSON在文档中的解释是:

接受一个JSON字符串,返回解析后的对象。

传入一个畸形的JSON字符串会抛出一个异常。比如下面的都是畸形的JSON字符串:
{test: 1} ( test 没有包围双引号)
{'test': 1} (使用了单引号而不是双引号)

另外,如果你什么都不传入,或者一个空字符串、null或undefined,parseJSON都会返回 null 。

Javascript 相关文章推荐
javascript据option的value值快速设定初始的selected选项
Aug 13 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
Jul 31 Javascript
onclick与listeners的执行先后问题详细解剖
Jan 07 Javascript
Extjs4中Form的使用之本地hiddenfield
Nov 26 Javascript
JS获取时间的方法
Jan 21 Javascript
Bootstrap学习笔记之js组件(4)
Jun 12 Javascript
js 性能优化之算法和流程控制
Feb 15 Javascript
vue通过watch对input做字数限定的方法
Jul 13 Javascript
微信小程序左滑删除功能开发案例详解
Nov 12 Javascript
JS使用对象的defineProperty进行变量监控操作示例
Feb 02 Javascript
vue+elementUI实现表格关键字筛选高亮
Oct 26 Javascript
详解vue中v-bind:style效果的自定义指令
Jan 21 Javascript
javascript sudoku 数独智力游戏生成代码
Mar 27 #Javascript
Javascript 函数中的参数使用分析
Mar 27 #Javascript
js几个验证函数代码
Mar 25 #Javascript
Firefox下提示illegal character并出现乱码的原因
Mar 25 #Javascript
JavaScript setTimeout和setInterval的使用方法 说明
Mar 25 #Javascript
JavaScript 学习初步 入门教程
Mar 25 #Javascript
ext 列表页面关于多行查询的办法
Mar 25 #Javascript
You might like
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
js实现车辆管理系统
2020/08/26 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
详解Python的迭代器、生成器以及相关的itertools包
2015/04/02 Python
python使用pymysql实现操作mysql
2016/09/13 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
django缓存配置的几种方法详解
2018/07/16 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
Python如何将模块打包并发布
2020/08/30 Python
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL