JSON.parse()和JSON.stringify()兼容低版本浏览器

来源:互联网 发布:谷歌拼音输入法 mac 编辑:程序博客网 时间:2024/05/20 00:48

JSON.parse和JSON.stringify这两个方法在ie8及以上浏览器都能够使用,但关于兼容低版本的浏览器,可以用两种方法解决。
1.可以引入json2.js,下载地址
https://github.com/douglascrockford/JSON-js/blob/master/json2.js,下载下来单独引入,也可以以下面这种方式:

<!--[if lt IE 8]> <script src="https://raw.githubusercontent.com/douglascrockford/JSON-js/master/json2.js"></script> <![endif]-->

2.

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();            }        }    };}
0 0
原创粉丝点击