Que*_*low 77 javascript jquery
jQuery.parseJSON并且JSON.parse是执行相同任务的两个函数.如果已经加载了jQuery库,那么在性能方面会jQuery.parseJSON比使用更好JSON.parse吗?
如果是,为什么?如果不是,为什么不呢?
dfs*_*fsq 112
这是jQuery 1.9.1的摘录:
parseJSON: function( data ) {
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}
if ( data === null ) {
return data;
}
if ( typeof data === "string" ) {
// Make sure leading/trailing whitespace is removed (IE can't handle it)
data = jQuery.trim( data );
if ( 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 );
},
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,jQuery将使用本机JSON.parse方法(如果可用),否则它将尝试使用它来评估数据new Function,这有点像eval.
所以,是的,你一定要使用jQuery.parseJSON.
小智 6
JSON.parse()在某些浏览器上本机可用,而在其他浏览器上不可用,因此使用库更安全.正如其他受访者所指出的那样,JQuery实施效果很好.还有Douglas Crockford的JSON库,它使用本机实现(如果可用).
JSON的图书馆,它有把一个JavaScript对象成JSON字符串,这是从jQuery的缺失目前的方法的优点..
小智 5
如果您使用的是jQuery版本3(于2016年发布),则应使用,JSON.parse()因为jQuery.parseJSON() 已弃用。
从jQuery 3.0开始,不推荐使用$ .parseJSON。要解析JSON对象,请改用本机JSON.parse方法。