大佬教程收集整理的这篇文章主要介绍了自定义JSON.stringify方法,兼容老版本浏览器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
/** * JSON 值可以是: * 数字(整数或浮点数) * 字符串(在双引号中) * 逻辑值(true 或 false) * 数组(在方括号中) * 对象(在花括号中) * null */ var json = { Stringify: function (val) { var Stringify = '',curVal; if (val === null) { // null return String(val); } switch (typeof val) { case 'number': // number case 'Boolean': // Boolean return String(val); case 'String': // String return '"' + val + '"'; case 'undefined': // undefined case 'function': // function return undefined; } switch (Object.prototype.toString.call(val)) { case '[object Array]': // array Stringify += '['; for (var i = 0,len = val.length - 1; i < len; i++) { curVal = json.Stringify(val[i]); Stringify += (curVal === undefined ? null : curVal) + ","; } Stringify += json.Stringify(val[i]); Stringify += ']'; return Stringify; case '[object Date]': // date return '"' + (val.toJSON ? val.toJSON() : val.toString()) + '"'; case '[object RegExp]': // regular expression return "{}"; case '[object Object]': // object Stringify += '{'; for (var i in val) { if (val.hasOwnProperty(i)) { curVal = json.Stringify(val[i]); if (curVal !== undefined) { Stringify += '"' + i + '":' + curVal + ','; } } } Stringify = Stringify.slice(0,-1); Stringify += '}'; return Stringify; } } } // 测试代码 console.log('number'); var number = json.Stringify(8); console.log('Stringify:',typeof number,number); //console.log(JSON.parse(number)); //console.log(number === JSON.Stringify(8)); console.log('-----------------------'); console.log('Boolean'); var Boolean = json.Stringify(true); console.log('Stringify:',typeof Boolean,Boolean); //console.log(JSON.parse(Boolean)); //console.log(Boolean === JSON.Stringify(true)); console.log('-----------------------'); console.log('Null'); var _null = json.Stringify(null); console.log('Stringify:',typeof _null,_null); //console.log(JSON.parse(_null)); //console.log(_null === JSON.Stringify(null)); console.log('-----------------------'); console.log('Undefined'); var _undefined = json.Stringify(undefined); console.log('Stringify:',typeof _undefined,_undefined); //console.log(JSON.parse(_undefined)); //console.log(_undefined === JSON.Stringify(undefined)); console.log('-----------------------'); console.log('String'); var String = json.Stringify('abc123'); console.log('Stringify:',typeof String,String); //console.log(JSON.parse(String)); //console.log(String === JSON.Stringify('abc123')); console.log('-----------------------'); console.log('Array'); var theArray = [1,undefined,function () {},'a']; var array = json.Stringify(theArray); console.log('Stringify:',typeof array,array); //console.log(JSON.parse(array)); //console.log(array === JSON.Stringify(theArray)); console.log('-----------------------'); console.log('Function'); function fntest() { console.log('function Stringify'); } var func = json.Stringify(fnTest); console.log('Stringify:',typeof func,func); // console.log(JSON.parse(funC)); //console.log(func === JSON.Stringify(fnTest)); console.log('-----------------------'); console.log('Object'); var objTest = json.Stringify({ a: 1 }); console.log('Stringify',typeof objTest,objTest); //console.log(objTest === JSON.Stringify({ // a: 1 //})); console.log('-----------------------'); console.log('RegExp'); var RegExp = json.Stringify(/^a$/g); console.log('Stringify',typeof RegExp,RegExp); //console.log(RegExp === JSON.Stringify(/^a$/g)); console.log('-----------------------'); console.log('Date'); var theDate = new Date(); var date = json.Stringify(theDatE); console.log('Stringify',typeof date,datE); //console.log(date === JSON.Stringify(theDatE)); console.log('-----------------------');
以上是大佬教程为你收集整理的自定义JSON.stringify方法,兼容老版本浏览器全部内容,希望文章能够帮你解决自定义JSON.stringify方法,兼容老版本浏览器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。