展开目录
简易JSON函数封装
javascriptJSONie6ie7
X
陈尼玛的博客
记录开发生涯的踩坑经历,用时间来验证成长
加载中

项目要求兼容版本ie6,7,由于以前的代码中大量使用JSON.*的方法来处理数据,所以在这两个浏览器上都报错无法使用。虽然网上有现成的json2.js,但是它的源代码太大了,所以就自己实现了一个简易版JSON封装。

JSON对象提供parse和stringify两个函数,下面是实现的代码。

if(!window.JSON) window.JSON={
// begin 
stringify:function callee(o){
  // 匹配布尔值和null,undefined在json中用null表示,其他的就是自身
  if(o===true||o==undefined)return o===undefined?null:o;
  switch(o.constructor){
  // 处理数字,字符串,数组,对象
  case Number:return o;
  case String:return '"'+o.replace(/\"/g,'\\"')+'"';
  case Array:return '['+(function(){
      var r=[],i=0;
      for(;i<o.length;i++)
        r.push(callee(o[i]));
      return r.join(',');
    })()+']';
  case Object:return '{'+(function(){
      var r=[];
      for(var i in o)
        r.push(callee(i+'')+':'+callee(o[i]));
      return r.join(',');
    })()+'}';
  // 其他类型的需要报错,比如json中包含function
  default:
    throw ['Not matches: ',o];
  }
},
parse:function(s){
  return eval('('+s+')');
}
// end
};

因为ie6,7浏览器上没有控制台,调试很麻烦,所以就不做在线演示。

相关文档

暂无

随便看看

  1. cnpm 立即同步

  2. css3自定义滚动条样式

  3. 华为等国产手机rem宽度超过实际宽度

  4. 安卓文字偏上,文字顶部被遮罩

  5. word文件命令行打印

  6. ipsec vpn 添加新账号

  7. nodejs本地双向代理 端口转发

  8. nodejs socks5

  9. html5 全屏代码

  10. python 用摄像头拍照并写入文件

  11. 搜索命令整理

  12. mongodb 批量修改字段语句

  13. 模拟307跳转情况

  14. webrtc泄漏本地ip信息

  15. 树莓派配置wifi热点

  16. webpack使用外部资源

  17. centos7 开放或者关闭端口

  18. 随机取某个概率区间的代码

  19. youku电脑版跳过广告代码

畅言模块加载中