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 相关文章推荐
解析arp病毒背后利用的Javascript技术附解密方法
Aug 06 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
Sep 29 Javascript
JS冒泡事件的快速解决方法
Dec 16 Javascript
禁用JavaScript控制台调试的方法
Mar 07 Javascript
get(0).tagName获得作用标签示例代码
Oct 08 Javascript
js实现滑动触屏事件监听的方法
May 05 Javascript
js 判断一组日期是否是连续的简单实例
Jul 11 Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
May 03 Javascript
js与jquery获取input输入框中的值实例讲解
Feb 27 jQuery
Vue router安装及使用方法解析
Dec 02 Vue.js
解析原生JS getComputedStyle
May 25 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
Memcache 在PHP中的使用技巧
2010/02/08 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
javascript编程起步(第七课)
2007/01/10 Javascript
pjblog修改技巧汇总
2007/03/12 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
Python中shutil模块的学习笔记教程
2017/04/04 Python
使用Python写一个小游戏
2018/04/02 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
python库matplotlib绘制坐标图
2019/10/18 Python
python 实现绘制整齐的表格
2019/11/18 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
2014年药房工作总结
2014/11/22 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
SQL Server Agent 服务无法启动
2022/04/20 SQL Server