1. JSON.parse(jsonString): 在一个字符串中解析出 JSON 对象
- var str = '[{"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}]';
- JSON.parse(str);
结果:
2. JSON.stringify(obj) : 将一个 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"}]"
3. jQuery.parseJSON(jsonString) : 将格式完好的 JSON 字符串转为与之对应的 JavaScript 对象
- var str = '[{"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}]';
- jQuery.parseJSON(str);
结果:
4.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 ( Windows.JSON && Windows.JSON.parse ) {
- return Windows.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 );
- },
来源: http://www.bubuko.com/infodetail-2956221.html