jQuery1.4 的 JSON 问题

升级到1.4后,使用jQuery.getJSON获取JSON数据不成功了

原来在1.3之前,jQuery转换JSON对象是使用eval来转换的。1.4之后,jQuery使用了新的方法来处理,jQuery使用了浏览器支持的方法进行转换,例如Firefox就支持 window.JSON.parse 对JSON字符串进行转换对象,但是jQuery在使用这些内部方法前,对JSON字符串进行了检验,只有符合标准的JSON格式,才可以进行转换,如果出现了以下不符合标准的格式,1.4就不能转换成功:
{ 'foo' : 'bar' }
{ foo: 'bar' }
{ foo: "bar" }
{ "foo" : 'bar' }

标准的JSON格式中不允许使用 ''(单引号)来包裹属性和字符串,也就是说要使用 ""(双引号)

{ "foo" : "bar" }

但是原来的程序确实使用了这样不符合标准的格式,那要怎么样才能使用1.4呢?

 

ExpandedBlockStart.gif View Code
$.ajax({url:  " /url " ,
  dataType: 
" text " ,
  success: 
function (data) {
    json 
=  eval( " ( "   +  data  +   " ) " );
    
//  do something with json
  }
});

使用eval方法对数据进行转换

方法2,这种方法我觉得更好更便捷:

ExpandedBlockStart.gif View Code
< script type = ”text / javascript” language=”javascript”>window.JSON = null;< / script >




 

转载于:https://www.cnblogs.com/S-TGM/archive/2011/09/05/2167768.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值