簡體   English   中英

將jQuery.parseJSON添加到jQuery 1.3

[英]Add jQuery.parseJSON to jQuery 1.3

是否可以擴展jQuery 1.3以包含1.4.1+中的parseJSON函數,並使其功能與jQuery 1.4.1+中的相同? 我該怎么辦呢?

我有一些網站,我必須使用jQuery 1.3,但我有一個需要parseJSON的工具,它只在jQuery 1.4.1中引入。 我隱約知道我應該從1.4.1+中獲取parseJSON並嘗試將其設為插件,但我不知道該怎么做。

你可以把它變成這樣的插件:

$.extend({
    error: function( msg ) { throw msg; },
    parseJSON: function( data ) {
        if ( typeof data !== "string" || !data ) {
            return null;
        }    
        data = jQuery.trim( data );    
        if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
            .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")
            .replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {    
            return window.JSON && window.JSON.parse ?
                window.JSON.parse( data ) :
                (new Function("return " + data))();    
        } else {
            jQuery.error( "Invalid JSON: " + data );
        }
    }
});

你可以在這里測試一下
這個代碼是從jQuery 1.4.4中采用的 - 在這里找到 在你的問題包含上面的jQuery 1.3之后,只需像$.parseJSON()一樣使用$.parseJSON() ......或者在你的情況下,只需在上面的代碼之后包含插件,並為它們提供$.parseJSON()使用。

您可以使用Crockfords實現: https//github.com/douglascrockford/JSON-js

或者在這里,直接鏈接: https//github.com/douglascrockford/JSON-js/blob/master/json_parse.js

您是否無法編輯使用1.3的代碼? jQuery.json插件提供$ .toJSON和$ .evalJSON,它們相當於1.4中的新。 您可以嘗試在支持它的瀏覽器中使用本機JSON.parse和JSON.stringify。 在舊版瀏覽器中,您需要包含JSON2以向這些瀏覽器添加JSON.parse和JSON.stringify支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM