IE6,7下的JSON.stringify(),JSON.parse()使用-20 chapter(扩展阅读)

 IE6,7不支持JSON对象,无法使用JSON.stringify(),JSON.parse(),

  1.  因此可以要序列化json数据,可以针对较老的浏览器写个序列化json数据的方法出来.
  2.  也可以写个对应将json数据解析为js对象的方法,当然你可以直接使用eval来解析json数据(已经考虑了安全隐患情况下)
  3.  或者你的项目中使用了jQuery,直接使用jQuery.parseJSON( json ))都是可完成解析json数据的任务,
  4.  或者引入(现在无效了)
    <!--[if lt IE 9]>
    
        <script src="http://www.json.org/json2.js"></script>
    
    <![endif]-->
    
    

 所以看看这里可能会对你的帮助更大
 https://github.com/douglascrockford/JSON-js

 

/*

	 * method : stringify(obj);

	 * return : json string

	 * source : https://gist.github.com/754454

*/



	    var 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原生值

*/	  

	var parse = function (jsonString) {

        if (window.JSON) {

            return window.JSON.parse(s);

        }

        //使用到了jquery的parseJSON(s)方法

        return $.parseJSON(jsonString);

    }; 



//示例:

 	var gather = {

		id : 1314,

		name : 'pom',

		infor : {

			age : 20,

			sex : 'man',

			marry : false,

			identity : 622421,

			habit : ['篮球','台球','乒乓球','游戏',true]

		},

		family : ['妈妈','爸爸','弟弟'],

		likeGames : ['PCgame','Netgame'],

	};

	//序列化json数据的方法

	var originalJsonText = JSON.stringify(gather,null,4);

	var customJJsonText = stringify(gather);



	console.log(originalJsonText);

	console.log(customJJsonText);



	//json数据解析为js原生值(Object,Array,String...)的方法

	var evalObj = eval('(' + customJJsonText + ')');

	var originalObj = JSON.parse(customJJsonText);

	var jqueryObj = $.parseJSON(customJJsonText);



	console.log(evalObj);

	console.log(originalObj);

	console.log(jqueryObj);

 以上部分代码来源:

https://gist.github.com/754454

mark:《高程三》20章 扩展阅读 笔记

你可能感兴趣的:(stringify)