Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
作者:
我们知道Invalid JSON错误导致的json对象不能解析,一般都是服务器返回的json字符串的语法有错误。这种情况下,我们只需要仔细的检查一下json就可以解决问题。
下面说一下,最近在使用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 。
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 。
您可能感兴趣的文章:
- jQuery高级编程之js对象、json与ajax用法实例分析
- JQuery处理json与ajax返回JSON实例代码
- jquery的ajax异步请求接收返回json数据实例
- jQuery Ajax异步处理Json数据详解
- jQuery中使用Ajax获取JSON格式数据示例代码
- jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
- jsp中利用jquery+ajax在前后台之间传递json格式参数
- 详谈 Jquery Ajax异步处理Json数据.
- JQuery的ajax获取数据后的处理总结(html,xml,json)
- jquery ajax跨域解决方法(json方式)
- 浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
- jQuery使用ajax传递json对象到服务端及contentType的用法示例