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

下面说一下,最近在使用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 。

时间: 2024-12-29 14:55:56

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

jQuery通过ajax方法获取json数据不执行success的原因及解决方法_jquery

1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法 解决方案:使json格式务必符合下述3个标准写法: 1)键名称:用双引号括起: 2)字符串:用双引号括起: 3)数字,布尔值不需要使用双引号括起 : 注意:一定是双括号! 2.jQuery中ajax使用json数据类型总是跳过success执行error语句 执

jQuery对话框插件ArtDialog在双击遮罩层时出现关闭现象的解决方法_jquery

本文实例讲述了jQuery对话框插件ArtDialog在双击遮罩层时出现关闭现象的解决方法.分享给大家供大家参考,具体如下: 大家都知道,ArtDialog是一款非常不错的.轻量级的.基于jQuery的对话框插件,深受大家的追捧,大伙可以到一下地址进行下载: https://code.google.com/p/artdialog/ https://github.com/aui/artDialog 截止到2014年9月17日,已经有几个重大的版本v4.1.7.v5.0.4和v6.0.2,其中4.x

jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法_jquery

本文实例讲述了jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法.分享给大家供大家参考,具体如下: 一.问题描述: $('#tb-page-list').datagrid({ url: '/BisOrderInfo/GetList', pageNumber: 2, pageSize: 10 }); 当手动设置 pageNumber大于或等于2时,查看请求的方法时,会请求2次,并且第二次的pageNumber等于1: 二.原因所在: jquery.ea

jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法_jquery

本文实例讲述了jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法.分享给大家供大家参考,具体如下: 先看如下代码: /** * 全选 */ function checkAll() { $("input[name=ids]").attr("checked", true); } /** * 全不选 */ function uncheckAll() { $("input[name=ids]&quo

jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法_jquery

一般的,一个jqGrid的基本属性有一下几个常用的. 复制代码 代码如下: $("#id").jqGrid({ url: "", datatype: "local", postData: { strJson: Data }, mtype: "post", height: 45, width: 450, rowNum: rum, //每页的记录数 pgtext: "第{0}页 共{1}页", pgbutton

Jquery Post处理后不进入回调的原因及解决方法_jquery

今天做一个简单的增加数据,通过Jquery的Post方法,把Json数据传到Jsp后台,处理后却怎么都不进入回调函数, $.post("addGs.do","x=" + JSON.stringify(x) ,function(d){ alert('成功'); } ,"json" ); 通过FF调试发现返回数据正常,200Ok, 没办法,又看看Jquery API,说如果最后的参数是Json时,要求返回的数据是Json格式, 会不会是返回的Json

Win7系统IE9浏览器出现报错停止工作的原因及解决方法

  1.使用IE浏览器登陆邮箱的过程中出现报错了,当时弹出的报错如下截图; 2.去事件查看器内寻找是否有重要线索,IE浏览器作为Windows不可分割一部分,IE出错在新版的Vista以及Win7都是自动会记录至事件查看器里面的.先打开控制面板--管理工具--事件查看器,打开事件查看器以后,点击左边列表的 Windows 日志--应用程序,看列表时里面是否有 iexplore.exe 进程的错误信息; 3.事件查看器里的错误信息居然是一个很重要的dll报错.这种微软级别的dll报错需要非常谨慎,

jquery attr 设定src中含有&(宏)符号问题的解决方法_jquery

问题描述: html代码如下: <iframe src="http://www.jb51.net" id="addOrUpdateIframe" style="width:870px;height:450px;" border="0" scrolling="yes" ></iframe> 我用 jquery 的attr 方法设定 iframe的src属性 $("#addOr

jQuery UI Dialog控件中的表单无法正常提交的解决方法_jquery

最近使用jQuery UI的Dialog控件时发现如果在此控件放置表单,则所有表单均无法正常提交,具体表现为: 1.提交按钮失效,点击后无任何反应. 2.即便是使用其它手段使页面产生提交,服务器端也无法取到Dialog中的表单数据. 研究了页面源码后发现,jQuery UI Dialog控件初始化时动态生成的HTML元素被添加到页面的尾部.form元素的后面,而原始的Dialog模板部分(其内包含表单元素)也被移到了 动态生成的HTML元素内.也就是说,原先在form内的表单在Dialog初始化