zoukankan      html  css  js  c++  java
  • array2json

     原文:jQuery方法扩展:type, toJSON, evalJSON. http://zhkac.iteye.com/blog/499330 .2013-05-19

    (function($) { 
        // the code of this function is from  
        // http://lucassmith.name/pub/typeof.html 
        $.type = function(o) { 
            var _toS = Object.prototype.toString; 
            var _types = { 
                'undefined': 'undefined', 
                'number': 'number', 
                'boolean': 'boolean', 
                'string': 'string', 
                '[object Function]': 'function', 
                '[object RegExp]': 'regexp', 
                '[object Array]': 'array', 
                '[object Date]': 'date', 
                '[object Error]': 'error' 
            }; 
            return _types[typeof o] || _types[_toS.call(o)] || (o ? 'object' : 'null'); 
        }; 
        // the code of these two functions is from mootools 
        // http://mootools.net 
        var $specialChars = { '': '\b', '	': '\t', '
    ': '\n', 'f': '\f', '
    ': '\r', '"': '\"', '\': '\\' }; 
        var $replaceChars = function(chr) { 
            return $specialChars[chr] || '\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16); 
        }; 
        $.toJSON = function(o) { 
            var s = []; 
            switch ($.type(o)) { 
                case 'undefined': 
                    return 'undefined'; 
                    break; 
                case 'null': 
                    return 'null'; 
                    break; 
                case 'number': 
                case 'boolean': 
                case 'date': 
                case 'function': 
                    return o.toString(); 
                    break; 
                case 'string': 
                    return '"' + o.replace(/[x00-x1f\"]/g, $replaceChars) + '"'; 
                    break; 
                case 'array': 
                    for (var i = 0, l = o.length; i < l; i++) { 
                        s.push($.toJSON(o[i])); 
                    } 
                    return '[' + s.join(',') + ']'; 
                    break; 
                case 'error': 
                case 'object': 
                    for (var p in o) { 
                        s.push(p + ':' + $.toJSON(o[p])); 
                    } 
                    return '{' + s.join(',') + '}'; 
                    break; 
                default: 
                    return ''; 
                    break; 
            } 
        }; 
        $.evalJSON = function(s) { 
            if ($.type(s) != 'string' || !s.length) return null; 
            return eval('(' + s + ')'); 
        }; 
    })(jQuery); 
  • 相关阅读:
    获取MAC地址的两种方法
    发现使用wcf传输的文件有20K的丢失
    用 document.readyState == "complete" 判断页面是否加载完成。
    防止SQL注入ASP代码
    什么是极端编程?
    Web.config 节点含义
    去掉网页上的图片工具栏
    程序员—青春饭?
    历史大骗局:广岛长崎原子弹爆炸
    最佳实践
  • 原文地址:https://www.cnblogs.com/ccdc/p/3087987.html
Copyright © 2011-2022 走看看