js实现对json数据的序列化(兼容ie6以上浏览器)

Posted 人生梦想起飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现对json数据的序列化(兼容ie6以上浏览器)相关的知识,希望对你有一定的参考价值。

/**
 * 增加对JSON数据的序列化方法,
 * 主要用于IE6、7不支持JSON对象的浏览器
 */

var xue = xue || {};
xue.json = xue.json || {};

xue.json.stringify = function(obj) {
    //如果是IE8+ 浏览器(ff,chrome,safari都支持JSON对象),使用JSON.stringify()来序列化
    if (window.JSON) {
        return JSON.stringify(obj);
    }
    var t = typeof(obj);
    if (t != "object" || obj === null) {
        // simple data type
        if (t == "string") obj = ‘"‘ + obj + ‘"‘;
        return String(obj);
    } else {
        // recurse array or object
        var n, v, json = [],
            arr = (obj && obj.constructor == Array);

        // fix.
        var self = arguments.callee;

        for (n in obj) {
            v = obj[n];
            t = typeof(v);
            if (obj.hasOwnProperty(n)) {
                if (t == "string") v = ‘"‘ + v + ‘"‘;
                else if (t == "object" && v !== null)
                // v = jQuery.stringify(v);
                    v = self(v);
                json.push((arr ? "" : ‘"‘ + n + ‘":‘) + String(v));
            }
        }
        return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
    }
};
/*
 * method : parse(json string)
 * return : js原生值
 */
xue.json.parse = function(jsonString) {
    if (window.JSON) {
        return window.JSON.parse(s);
    }
    //使用到了jquery的parseJSON(s)方法
    return $.parseJSON(jsonString);
};

使用方法:

var _json = {

      "js_58":[‘a‘,‘b‘],

      "js_39":[‘a‘,‘b‘,‘c‘],

      "js_68":[‘a‘]

}

将json对象_json序列化:

  xue.json.stringify(_json);

注意:如果ajax传参是json数据对象时,最好将json对象先序列化

 

以上是关于js实现对json数据的序列化(兼容ie6以上浏览器)的主要内容,如果未能解决你的问题,请参考以下文章

浏览器兼容性问题

基本的浏览器兼容

兼容性问题

python成长之路16

有趣的Javascript:只需一个JS让万恶的IE5IE6IE7IE8全都支持H5原生Canvas绘图(有演示demo)

如何实现背景透明,文字不透明,兼容所有浏览器?