首页 新闻 会员 周边 捐助

JQuery 1.4+版本的对JSON格式要求产生的问题

0
[已解决问题] 解决于 2010-11-01 16:17

由于1.4+的版本都对JSON的格式有了严格的要求,一定要加双引号,而如果没有双引号或者带的是单引号都不能正常通过。以前在1.3+版本的确实没问题,想试试1.4+新特性发觉所有JSON都不兼容,很是郁闷,有些朋友说可以通过修改JQuery 1.4+的源码来适应,我觉得治标不治本,没意义,关键是现在常用的后台序列化/反序列化库都是以这种不严格的格式输出JSON对象,大家有什么后台库可以跟进JQ 1.4的步伐的?我不想修改JQ的源码来解决问题,何况不一定完全没错误。

bugfly的主页 bugfly | 初学一级 | 园豆:10
提问于:2010-10-28 17:07
< >
分享
最佳答案
0

jQuery.parseJSON = function(v) { return eval('(' + v + ')'); };

在jQuery引入之后写

Gray Zhang | 专家六级 |园豆:17610 | 2010-10-29 11:14
大神。。。
bugfly | 园豆:10 (初学一级) | 2010-10-29 11:38
奇怪为什么会多两个括号()? 不是应该 eval('"+v+"')这样才对么?求解
bugfly | 园豆:10 (初学一级) | 2010-10-29 11:40
…… var v = "{name: 'Gray Zhang'}"; //eval相当于把v剥掉括号,然后return回来 var o = eval('"' + v + '"'); //这个出来的是"{name: 'Gray Zhang'}",就是个字符串 var o = eval('(' + v + ')'); //这个出来的是({name: 'Gray Zhang'}),是个对象
Gray Zhang | 园豆:17610 (专家六级) | 2010-10-29 11:42
{XXX:XXX}不就是JSON对象么?
bugfly | 园豆:10 (初学一级) | 2010-10-29 16:38
原来加圆括号是必须的,JS里面语句块优先检测于JSON对象。
bugfly | 园豆:10 (初学一级) | 2010-11-01 16:17
其他回答(2)
0

用回1.3+的版本就OK了吗    自己写的程序总是跟不上这些个框架更新的速度

写代码的小2B | 园豆:4377 (老鸟四级) | 2010-10-28 17:16
我也知道用回1.3+可以。不过有时想用用新特性,又担心兼容问题潜藏了。
支持(0) 反对(0) bugfly | 园豆:10 (初学一级) | 2010-10-29 08:46
0

Newtonsoft.Json.Compact.dll

SoXLiang | 园豆:142 (初学一级) | 2010-10-29 10:36
这个Newtonsoft.Json.Compact有什么特别,我2.0的项目都是用Newtonsoft.Json的。
支持(0) 反对(0) bugfly | 园豆:10 (初学一级) | 2010-10-29 11:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册