本文详解JSON.parse、JSON.stringify及jQuery.parseJSON的用法。JSON.parse将字符串转为对象,JSON.stringify将对象转为字符串。jQuery.parseJSON在支持原生解析时调用JSON.parse,否则回退至类似eval的方式,需注意浏览器兼容性与安全限制。
JSON核心方法用法
JSON.parse(jsonString):用于将格式良好的JSON字符串解析为对应的JavaScript对象。
var str = '[{"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}]';
JSON.parse(str);
执行结果如下所示:

JSON.stringify(obj):用于将一个JavaScript对象序列化为JSON字符串。
var obj = [{"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}];
JSON.stringify(obj);
执行结果如下所示:
"[{"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}]"
jQuery.parseJSON(jsonString):用于将格式完好的JSON字符串转换为与之对应的JavaScript对象。
var str = '[{"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}]';
jQuery.parseJSON(str);
执行结果如下所示:

JSON.parse与jQuery.parseJSON的区别
JSON.parse()与jQuery.parseJSON()的主要区别在于兼容性处理。
部分旧版浏览器不支持原生的JSON.parse()方法。在此情况下,jQuery.parseJSON()会优先尝试调用JSON.parse();若浏览器不支持,则回退至类似执行eval()的方法进行解析。上述行为基于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 );
},
以上就是关于JSON.parse()、JSON.stringify()以及jQuery.parseJSON()用法的完整介绍,希望以上内容能为您提供参考与帮助。