原来在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呢?
View Code
$.ajax({url:
"
/url
"
,
dataType: " text " ,
success: function (data) {
json = eval( " ( " + data + " ) " );
// do something with json
}
});
dataType: " text " ,
success: function (data) {
json = eval( " ( " + data + " ) " );
// do something with json
}
});
使用eval方法对数据进行转换
方法2,这种方法我觉得更好更便捷:
View Code
<
script type
=
”text
/
javascript” language=”javascript”>window.JSON = null;<
/
script
>