jQuerys缺少JSON.stringify
当使用jQuerys缺少JSON.stringify,jquery,json,Jquery,Json,当使用jQuery.parseJSON()将JSON字符串转换为对象时,jQuery使用JSON.parse()作为跨浏览器解决方案: 但是为什么没有类似的解决方案来使用JSON.stringify将对象转换为JSON呢JSON.stringify在IE7中不起作用,除非您包括。这是jQuerys路线图上的东西吗?没有类似的解决方案,因为jQuery内部不需要它。当前的立场是,如果核心不需要它,并且可以使用普遍接受的方法(包括json2.js或使用内置于所有现代浏览器中的方法)实现它,那么它就不
jQuery.parseJSON()
将JSON字符串转换为对象时,jQuery使用JSON.parse()
作为跨浏览器解决方案:
但是为什么没有类似的解决方案来使用
JSON.stringify
将对象转换为JSON呢<例如,代码>JSON.stringify在IE7中不起作用,除非您包括。这是jQuerys路线图上的东西吗?没有类似的解决方案,因为jQuery内部不需要它。当前的立场是,如果核心不需要它,并且可以使用普遍接受的方法(包括json2.js或使用内置于所有现代浏览器中的方法)实现它,那么它就不需要在核心中
作为参考,Guess我必须坚持使用条件注释,然后将其包含在ie7中。谢谢
parseJSON: function( data ) {
if ( !data || typeof data !== "string") {
return null;
}
// Make sure leading/trailing whitespace is removed (IE can't handle it)
data = jQuery.trim( data );
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}
// Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js
if ( rvalidchars.test( data.replace( rvalidescape, "@" )
.replace( rvalidtokens, "]" )
.replace( rvalidbraces, "")) ) {
return ( new Function( "return " + data ) )();
}
jQuery.error( "Invalid JSON: " + data );
}