JQuery 1.3.2以上版本中出现pareseerror错误的一种情况及处理方法

  最近正在搞一个团购系统,测试组那边不停的报告bug:后台、前台各种列表报告js弹出窗错误,内容仅仅是一句“pareseerror”!

感觉很莫名奇妙,前一阵子还好好的,怎么现在就突然报错了? 程序根本没动。于是开始跟踪分析,请求、返回的内容。。。最后判断是jquery

不承认返回的内容是json格式。当时返回的内容是:

{'keylist':[

{'tid':'13',"sumnum':'1'},{'tid':'21','sumnum':'1'}

]}



  经过仔细检查也没发现任何问题,返回流的字符已经设成utf-8,内容用ff检测,ff也能识别成json格式,但此时还是报“pareseerror”错误。

看着看着代码,突然发现,当前返回的内容,都是用英文单引号括起来的,依稀记得最严格的写法应该用英文双引号,于是立即修改系统底层库(c#)

的json数据生成方法,全部改成英文双引号,改后返回的内容如下:

{"keylist":[

{"tid":"13","sumnum":"1"},{"tid":"21","sumnum":"1"}

]}

结果放到测试服一试,问题解决! 我真&*^#%@$@

总结:仔细回想了一下,前些日子因为一些原因用jquery最新版本替换了团购系统中的旧版本,当时没想到这种情况。后来从网上查到资料,jquery在1.3.x版本后对json的解析采取了更严格的方法,所以要求数据必须书写的与国际规范一致。