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的动态语言特性
Jun 17 Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 Javascript
jquery动态切换背景图片的简单实现方法
May 14 Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 Javascript
jquery.zclip轻量级复制失效问题
Jan 08 Javascript
微信小程序 wx.request方法的异步封装实例详解
May 18 Javascript
vue2.0 父组件给子组件传递数据的方法
Jan 15 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
详解项目升级到vue-cli3的正确姿势
Jan 28 Javascript
Vue 实现输入框新增搜索历史记录功能
Oct 15 Javascript
基于JavaScript的数据结构队列动画实现示例解析
Aug 06 Javascript
Antd的table组件表格的序号自增操作
Oct 27 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版
2012/04/20 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
深入讲解Java编程中类的生命周期
2016/02/05 Python
python实现八大排序算法(2)
2017/09/14 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
2018/04/26 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
python如何调用字典的key
2020/05/25 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
汽车机修工岗位职责
2014/03/06 职场文书
学习十八大的心得体会
2014/09/12 职场文书
汽车转让协议书范本
2014/12/07 职场文书
董存瑞观后感
2015/06/11 职场文书
Python Matplotlib绘制动画的代码详解
2022/05/30 Python