Json JQuery冲突

时间:2009-02-13 16:07:08

标签: jquery json

我们的企业应用程序目前使用Json.js我下载了JQuery js文件,将其包含在使用json的页面中,我开始在json.js文件中获取Javascript错误。错误是:

Microsoft JScript runtime error: Object doesnt suppor this propety or method

这是一个已知问题吗?

编辑: 我不确定这个json.js文件是从哪里下载的(同事已经这样做了)。但是,json.js看起来像这样:

    json.js
2007-04-13

Public Domain

This file adds these methods to JavaScript:

    array.toJSONString()
    boolean.toJSONString()
    date.toJSONString()
    number.toJSONString()
    object.toJSONString()
    string.toJSONString()

我用json2.js替换了这个文件,看来新文件没有parseJSON()函数。我们在几页中使用此功能。

5 个答案:

答案 0 :(得分:1)

看起来好像Json.js确实使用$作为变量名。在这些情况下,您需要使用JQuery's noconflict function。基本上你必须将JQuery脚本标记放在Json脚本标记之上,并在加载Json库之前在jquery上调用noconflict。一个很好的特性是,虽然noconflict使JQuery不使用$,你可以将noconflict(将是JQuery对象)的结果分配给另一个别名,如此

var $j = jQuery.noConflict();

现在你只需使用$ j就可以使用$。

答案 1 :(得分:1)

您可能想要指定json.js是什么。这是http://www.json.org/js.html吗?

您可能正在使用与jQuery冲突的旧版本

这可能会有所帮助:http://www.mail-archive.com/discuss@jquery.com/msg06247.html

答案 2 :(得分:1)

要解决任何变量/方法命名问题,请使用这种方法,这种方法在100%的时间都适用于我:

(function(){
  // Your javascript function goes here
})();

答案 3 :(得分:1)

用json2.js替换json.js之后,只需替换像

这样的结构
foo.toJSONString()
foo.parseJSON()

JSON.stringify(foo)
JSON.parse(foo)

答案 4 :(得分:0)

我使用http://json.org中的json2.js文件和jQuery_1.3.1.js文件,没有任何问题。