IE6,7下的JSON.stringify(),JSON.parse()使用-20 chapter(扩展阅读)
2012-04-02 12:00 jalen 阅读(3589) 评论(1) 编辑 收藏 举报IE6,7不支持JSON对象,无法使用JSON.stringify(),JSON.parse(),
- 因此可以要序列化json数据,可以针对较老的浏览器写个序列化json数据的方法出来.
- 也可以写个对应将json数据解析为js对象的方法,当然你可以直接使用eval来解析json数据(已经考虑了安全隐患情况下)
- 或者你的项目中使用了jQuery,直接使用jQuery.parseJSON( json ))都是可完成解析json数据的任务,
- 或者引入(现在无效了)
<!--[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章 扩展阅读 笔记