漫谈JQUERY和JSON冲突进行学习研究

本文介绍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面向对象的东西。

 
 
  1. Martin Cooper  
  2. // after json.js has loaded...  
  3. > // define a namespace to minimize footprint  
  4. > var JSON = {};  
  5. > 
  6. > // add all of the methods  
  7. > JSON.arrayToJSONString = Array.prototype.toJSONString;  
  8. > JSON.booleanToJSONString = Boolean.prototype.toJSONString;  
  9. > JSON.dateToJSONString = Date.prototype.toJSONString;  
  10. > JSON.numberToJSONString = Number.prototype.toJSONString;  
  11. > JSON.objectToJSONString = Object.prototype.toJSONString;  
  12. > JSON.stringToJSONString = String.prototype.toJSONString;  
  13. > JSON.parseJSON = String.prototype.parseJSON;  
  14. > 
  15. > // remove all the methods from intrinsic objects  
  16. > delete(Array.prototype.toJSONString);  
  17. > delete(Boolean.prototype.toJSONString);  
  18. > delete(Date.prototype.toJSONString);  
  19. > delete(Number.prototype.toJSONString);  
  20. > delete(Object.prototype.toJSONString);  
  21. > delete(String.prototype.toJSONString);  
  22. > delete(String.prototype.parseJSON); 
THE END