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 相关文章推荐
IE8 中使用加速器(Activities)
May 14 Javascript
jquery统计输入文字的个数并对其进行判断
Jan 07 Javascript
js检测输入内容全为空格的方法
May 03 Javascript
解决js图片加载时出现404的问题
Nov 30 Javascript
由浅入深剖析Angular表单验证
Jul 14 Javascript
VueJs路由跳转——vue-router的使用详解
Jan 10 Javascript
bootstrap table支持高度百分比的实例代码
Feb 28 Javascript
微信小程序收藏功能的实现代码
Jun 12 Javascript
实现一个 Vue 吸顶锚点组件方法
Jul 10 Javascript
jQuery实现的记住帐号密码功能完整示例
Aug 03 jQuery
layer iframe 设置关闭按钮的方法
Sep 12 Javascript
vue router-link 默认a标签去除下划线的实现
Nov 06 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
德生PL990的分析评价
2021/03/02 无线电
PHP中的串行化变量和序列化对象
2006/09/05 PHP
php 面向对象的一个例子
2011/04/12 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
2015/12/22 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
laravel 数据验证规则详解
2019/10/23 PHP
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
python 随机数生成的代码的详细分析
2011/05/15 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
Python文件操作基本流程代码实例
2017/12/11 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
python scipy卷积运算的实现方法
2019/09/16 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
护理专业个人求职简历的自我评价
2013/10/13 职场文书
日语专业个人的求职信
2013/12/03 职场文书
小学运动会口号
2014/06/07 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS