3

在将 JSON 字符串转换为对象时, jQueryJSON.parse()用于跨浏览器解决方案jQuery.parseJSON()

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 );
}

但是为什么没有类似的解决方案可以使用 将对象转换为 JSONJSON.stringify呢?JSON.stringify例如,在 IE7 中不起作用,除非您包含json2.js。它是 jQuerys 路线图上的东西吗?

4

1 回答 1

3

没有类似的解决方案,因为 jQuery 内部不需要它。目前的立场是如果核心不需要它,并且可以使用普遍接受的方法(包括 json2.js 或使用所有现代浏览器中内置的方法)来实现它,它就不需要在核心中。

供参考,https://forum.jquery.com/topic/jquery-encodejson

于 2012-10-02T18:48:15.107 回答