JSON

[jQuery]解决IE 'JSON' 未被定义的错误

字号+ 作者:H5之家 来源:H5之家 2015-10-05 11:01 我要评论( )

在撰写jQuery的Ajax时 常常会用到json最近在写ajax的时候碰到了一个w问题,在FireFox中使用 JSON.parse(); 转换字符串时正常,一拿到 IE 下执行就发生了 ‘JSON

[jQuery]解决IE 'JSON' 未被定义的错误    

作者:SNSGOU 发布于:2012-06-08 22:12:31  分类:   浏览(5169) 

在撰写jQuery的Ajax时 常常会用到json

最近在写ajax的时候碰到了一个问题,在Firefox中使用 JSON.parse(); 转换字符串时正常,一拿到 IE 下执行就发生了 'JSON' 未被定义 的错误。

查了一下问题,发现是因为微软 IE7以下的浏览器及IE8的相容性模式不支持 JSON.parse();

并且查到了两种转换JSON字符串的方法,JSON.parse() 与 eval() 。

eval();

eval("var jobj = {"Key":"K1","Value":"12345"}");

JSON.parse();

var jobj = JSON.parse("{"Key":"K1","Value":"12345"}");

建议大家都是使用 JSON.parse(); 方法,因为eval()的安全性很低

但是总不能不管IE不支持的浏览器版本吧

所以推荐使用 Douglas Crockford 大师所写的library 的 json2.js 来进行分析JSON

 

下载地址:  https://github.com/douglascrockford/JSON-js

所以方法要改写成如下:

if (typeof (JSON) == 'undefined') { //如果浏览器不支持JSON,则载入json2.js $.getScript('js/json2.js'); } var jobj = JSON.parse("{"Key":"K1","Value":"12345"}");

以上即可两者兼顾。

相关日志:

JavaScript作用域和作用域链

JavaScript对象的理解 及 字面量对象与数组的关系

Firefox 中 __defineGetter__和__defineSetter__ 方法解析,自定义 innerText,outerHTML

JavaScript模块化编程(一):模块的写法

【阿里李战】解剖JavaScript中的null和undefined

细说JavaScript对象(1):对象的使用和属性

jQuery表单插件ajaxForm,ajaxSubmit使用详解

【荐】JavaScript对话框(弹出框)插件 - artDialog

深入研究URL编码问题及JavaScript相应的解决方案

细说JavaScript对象(2):原型对象

«  JavaScript正则表达式详解(一)正则表达式入门     |     工作量单位-人月、人日、人时 详解  »

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jquery each遍历json

    jquery each遍历json

    2016-01-31 16:17

  • struts2+ajax+json action向页面返回int型数据,页面报异常org.a

    struts2+ajax+json action向页面返回int型数据,页面报异常org.a

    2016-01-31 15:35

  • jQuery解析json格式数据简单实例

    jQuery解析json格式数据简单实例

    2016-01-26 08:00

  • jQuery+json实现的简易Ajax调用实例

    jQuery+json实现的简易Ajax调用实例

    2016-01-20 18:01

网友点评