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章 擴展閱讀 筆記


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM