json兼容ie8

今天遇到一个问题,后台传递过来的json对象,在前端解析的时候用JSON.parse(result)方法不好使,查了一下是因为ie浏览器的问题。然后在网上翻了翻,找到了这个办法,可以使这个函数在ie中生效。记录下来备用。

  需要的时候在这个页面加载的时候先加载这个函数,然后后续就可以正常使用  var json = JSON.parse(result);

$(function(){
    /**********************************************json兼容IE8*****************************************************/
    //json不兼容的解决办法:
    if (!window.JSON) {
        window.JSON = {
            parse: function(jsonStr) {
                return eval(‘(‘ + jsonStr + ‘)‘);
            },
            stringify: function(jsonObj) {
                var result = ‘‘,
                    curVal;
                if (jsonObj === null) {
                    return String(jsonObj);
                }
                switch (typeof jsonObj) {
                    case ‘number‘:
                    case ‘boolean‘:
                        return String(jsonObj);
                    case ‘string‘:
                        return ‘"‘ + jsonObj + ‘"‘;
                    case ‘undefined‘:
                    case ‘function‘:
                        return undefined;
                }

                switch (Object.prototype.toString.call(jsonObj)) {
                    case ‘[object Array]‘:
                        result += ‘[‘;
                        for (var i = 0, len = jsonObj.length; i < len; i++) {
                            curVal = JSON.stringify(jsonObj[i]);
                            result += (curVal === undefined ? null : curVal) + ",";
                        }
                        if (result !== ‘[‘) {
                            result = result.slice(0, -1);
                        }
                        result += ‘]‘;
                        return result;
                    case ‘[object Date]‘:
                        return ‘"‘ + (jsonObj.toJSON ? jsonObj.toJSON() : jsonObj.toString()) + ‘"‘;
                    case ‘[object RegExp]‘:
                        return "{}";
                    case ‘[object Object]‘:
                        result += ‘{‘;
                        for (i in jsonObj) {
                            if (jsonObj.hasOwnProperty(i)) {
                                curVal = JSON.stringify(jsonObj[i]);
                                if (curVal !== undefined) {
                                    result += ‘"‘ + i + ‘":‘ +curVal + ‘,‘;
                                }
                            }
                        }
                        if (result !== ‘{‘) {
                            result = result.slice(0, -1);
                        }
                        result += ‘}‘;
                        return result;

                    case ‘[object String]‘:
                        return ‘"‘ + jsonObj.toString() + ‘"‘;
                    case ‘[object Number]‘:
                    case ‘[object Boolean]‘:
                        return jsonObj.toString();
                }
            }
        };
    }

    /**********************************************json兼容IE8*******************************************************/
});

  

原文地址:https://www.cnblogs.com/anningkang/p/10437177.html

时间: 2024-10-23 23:01:59

json兼容ie8的相关文章

jQuery ajax 动态append创建表格出现不兼容ie8

很多情况下,通过js(jQuery1.10)动态来创建一些样式,对页面的动态交互来说是很方便的 但是不同的浏览器针对动态生成的不是很兼容,在此遇见的不兼容ie8,跟各位分享下 代码: json数据 data.json [{"name":"ajax","job":"manong"},{"name":"js","job":"diaosi"}] html

CSS3 线性渐变(linear-gradient) 兼容IE8,IE9

一.线性渐变在 Mozilla 下的应用     语法: 1 -moz-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* ) 参数:其共有三个参数,第一个参数表示线性渐变的方向,top 是从上到下.left 是从左到右,如果定义成 left top,那就是从左上角到右下角.第二个和第三个参数分别是起点颜色和终点颜色.你还可以在它们之间插入更多的参数,表示多种颜色的

ICG-智能代码生成器.(权限控制.融入平台).(表单引擎).(最低兼容IE8)

请下拉滚动条... 界面: 1--首先是server制作界面(BS结构).直接上图:   2--点击提交生成一下文件: 各个代表什么一看就懂了...... 3--把上面的文件放到对于的位置.然后编译.然后就ok了.... 打开client中的IBD中的loginin.aspx页面 用admin登陆.(admin未管理员.test为普通用户.这些在平台都可以设置) 登陆进来是这样:其中邮件和分组管理还有用户管理以及app管理都是平台自带的....看下图: 4--现在把刚才生成的app应用加入到平台

【转】让Bootstrap 3兼容IE8浏览器

FROM : http://www.ijophy.com/2014/05/bootstrap3-compatible-with-ie8.html 最近在研究Bootstrap(官方,Github)这个优秀的前端框架,Bootstrap最开始是Twitter团队内部的一个前端框架,所谓前端框架就是一个CSS/HTML框架,框架里面有下拉菜单.按钮组.按钮下拉菜单.导航.导航条.面包屑.分页.排版.缩略图.警告对话框.进度条.媒体对象等.Bootstrap他们预先定义好,等要进行正式制作网页的时候,

让Bootstrap 3兼容IE8浏览器

http://www.ijophy.com/2014/05/bootstrap3-compatible-with-ie8.html 看到这篇文章有越来越多的人看,我决定给大家节省时间,废话少说.有几个点大家要注意. 1.本地调试需要Web Server(如IIS.Apache,Nginx),单纯地本地打开文件不能看到兼容效果. 2.如果你发现已经引用了respond.js和Bootstrap,仍无效果,请查看你的Bootstrap是否使用了CDN文件.(详情看第4点) 3.本文主要针对Boots

canvas如何兼容IE8

大家都知道canvas是个非常好玩的东西,但是IE9以下的浏览器不支持,有时候业务需求必须用到canvas,且又要求兼容IE8浏览器,那怎么办呢? 1.添加对html5的支持:<!--[if IE]> <script src="/public/html5.js" type="text/javascript"></script><![endif]-->2.添加对canvas的支持:下载excanvas_r3.zip,引用

兼容ie8 rgba()用法 滤镜filter的用法

原文  http://blog.csdn.net/westernranger/article/details/40836861 今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不是难题,只需要给这个div设置如下的属性即可: background: rgba(255,255,255,.1); 但是要兼容到ie8.这个就有点蛋疼了.因为ie8不支持rgba()函数.下面我们总结一下rgba()函数的含义. rgba的含义,r代表red,g代表green,b代表blue,红绿蓝

3D球状标签云(兼容IE8)

看见一个很有趣的标签云,3D球状,兼容 IE 8,亲测可用!其他版本没有测试.觉得挺有意思就拿来记录下来,学习学习,本文下方会放出我看的文章地址,先看一下效果: 接下来是代码,html + css + js,不是基于jQuery的,所以不需要引入,代码复制下来就可以看到效果: <div id="div1"> <a href="http://www.cnblogs.com/ntt1219/">忘了滋味</a> <a href=

兼容IE8的canvas自制圆形比例图

兼容IE8的canvas自制圆形比例图,代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">             <HTML>             <HEAD>                 <TITLE> IE8支持HTML5+CSS3 </TITLE>                 <meta charset="