【问题标题】:Add jQuery.parseJSON to jQuery 1.3将 jQuery.parseJSON 添加到 jQuery 1.3
【发布时间】:2010-12-07 22:34:00
【问题描述】:

是否可以扩展 jQuery 1.3 以包含 1.4.1+ 中的 parseJSON 函数,并使其功能与 jQuery 1.4.1+ 中的功能相同?我该怎么办?

我有一些网站必须使用 jQuery 1.3,但我有一个需要 parseJSON 的工具,该工具仅在 jQuery 1.4.1 中引入。我隐约知道我应该从 1.4.1+ 中获取 parseJSON 并尝试使其成为插件,但我不知道该怎么做。

【问题讨论】:

  • @yc ,用json2.js怎么样??
  • @gov 我对所包含的功能束手无策;我需要它才能使用parseJSON。我知道,这很荒谬。

标签: javascript jquery json jquery-1.3


【解决方案1】:

你可以把它做成这样的插件:

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

You can test it here.
这段代码来自 jQuery 1.4.4 - found here。在将上述内容包含在 jQuery 1.3 中作为您的问题之后,只需像往常一样使用 $.parseJSON()... /p>

【讨论】:

  • 如果您使用的是 1.3.x,则只有一个小问题 ... jQuery.error 直到 1.4.1 才添加 :) 添加: - error: function( msg ) { throw msg; },上面的 parseJSON 定义将解决这个问题。
【解决方案2】:

【讨论】:

    【解决方案3】:

    用1.3的代码你不能编辑吗? jQuery.json plugin 提供 $.toJSON 和 $.evalJSON,相当于 1.4 中的新功能。您可以尝试在支持的浏览器中使用本机 JSON.parse 和 JSON.stringify。在较旧的浏览器中,您需要包含 JSON2 以向这些浏览器添加 JSON.parse 和 JSON.stringify 支持。

    【讨论】:

    • 不,很遗憾这是不可能的。我的双手被束缚在我从这个插件收到的代码的内容上。
    猜你喜欢
    • 2018-07-07
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2020-10-03
    • 2011-06-04
    相关资源
    最近更新 更多