zoukankan      html  css  js  c++  java
  • 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对象先序列化

  • 相关阅读:
    主流ORM对比分析,莫人云亦云
    避免远程调用中固有的滞后时间问题的最佳方法是进行更少的调用,并让每个调用传递更多的数据。
    挣值管理(PV、EV、AC、SV、CV、SPI、CPI) 记忆
    项目成本管理记忆口诀:
    总是差和自由时差
    成本基线
    php htmlentities函数的问题
    .NET简谈事务、分布式事务处理
    Startup配置类 居然又是约定
    项目管理的九大只是领域输入,工具和输出
  • 原文地址:https://www.cnblogs.com/dearxinli/p/5524180.html
Copyright © 2011-2022 走看看