本文介绍JQUERY和JSON冲突的使用问题介绍说明(使用Ruby on rails框架进行讲解,因为它所有的配置文件都是使用的YAML)以及它与XML和JSON的区别,***讨论了YAML的优势和缺点。
引入之后,发现某些方法用不了,报错,怪异,逐步的排查,折腾了一下午,终于发现公司的框架里引入了json.js,看了json.js的源码,删掉之后,功能正常,网上搜搜这些,发现遇到这种问题的人不在少数,解决方法大致如下:#T#
1.有说调整js加载先后顺序的
2.还有直接使用Jquery的专用JSON.js
但是这两种方案不适于我,因为是公司框架封装起来的东西,不能改动。我用的是下面的方法变通的解决办法就是仿照下面的解决方法做的:在js代码里加上这么一句
delete(Object.prototype.toJSONString);,问题解决。我测试成功,暂时没有发现问题。PS:没见过这种在页面直接就能调用delete(Object.prototype)的方法,有时间还是要好好研究一下js面向对象的东西。
- Martin Cooper
- // after json.js has loaded...
- > // define a namespace to minimize footprint
- > var JSON = {};
- >
- > // add all of the methods
- > JSON.arrayToJSONString = Array.prototype.toJSONString;
- > JSON.booleanToJSONString = Boolean.prototype.toJSONString;
- > JSON.dateToJSONString = Date.prototype.toJSONString;
- > JSON.numberToJSONString = Number.prototype.toJSONString;
- > JSON.objectToJSONString = Object.prototype.toJSONString;
- > JSON.stringToJSONString = String.prototype.toJSONString;
- > JSON.parseJSON = String.prototype.parseJSON;
- >
- > // remove all the methods from intrinsic objects
- > delete(Array.prototype.toJSONString);
- > delete(Boolean.prototype.toJSONString);
- > delete(Date.prototype.toJSONString);
- > delete(Number.prototype.toJSONString);
- > delete(Object.prototype.toJSONString);
- > delete(String.prototype.toJSONString);
- > delete(String.prototype.parseJSON);