JSONObject.toString

作者:快乐笛子 来源:快乐笛子博客 时间:2008-03-09 19:12:00 

Object 类型的对象虽然有 toString 方法,但结果却是 [Object Object] 让人没法理解的字符。比如简单的对象:{name:"张三",age:20,canfly:true,sayHello:function(){alert("hello!")},hasPower:["fly","selfFix","autobuilding"]},此对象的数据格式几乎涵盖了JavaScript所有常见的数据格式(字符、数字、布尔、方法、数组),如果执行该对象的toString方法能还原描述此对象的原始字符串,将能更直观地展示对象。

ok,let's go

Object.prototype.toString = function(){
 var str = "";
 for (var key in this){
  if(key=="toJSONString")continue;
  if(!this[key] || this[key]==true){
   str += ","+key+":"+this[key];
  }else if(typeof this[key]=="number"){
   str += ","+key+":"+this[key]+"";
  }else if(typeof this[key] == "string"){
   str += ","+key+":\""+this[key]+"\"";
  }else if(typeof this[key]=="function"){
   str += ","+key+":"+this[key].toString();
  }else if(typeof this[key] == "object"){  
   if(this[key].constructor == Array){
    str += ","+key+":"+this[key].toJSONString();
   }else if(this[key].constructor == Object){
    str += ","+key+":"+this[key].toString();
   }
  }
  
 }
 return "{"+str.substring(1)+"}";
}

Array.prototype.toJSONString = function(){
 var str = "";
 for (var key=0; key<this.length; key++){
  if(typeof this[key]=="number"){
   str += ","+this[key];
  }else if(typeof this[key] == "string"){
   str += ",\""+this[key]+"\"";
  }else if(!this[key] || this[key]==true){
   str += ","+this[key];
  }else if(typeof this[key]=="function"){
   str += ","+this[key].toString();
  }else if(typeof this[key] == "object"){  
   if(this[key].constructor == Array){
    str += ","+ this[key].toJSONString();
   }else if(this[key].constructor == Object){
    str += ","+this[key].toString();
   }
  }
  
 }
 return "["+str.substring(1)+"]";
}

方法很简单,处理的数据格式也仅限于上面提到的几种JavaScript内置数据格式。上面的代码有两段,但不能分拆,互相有引用。

标签:toString,Object,字符串,js
0
投稿

猜你喜欢

  • Python编写合并字典并实现敏感目录的小脚本

    2023-05-28 18:36:29
  • 解决Go语言time包数字与时间相乘的问题

    2023-08-06 17:07:55
  • 浅谈Python numpy创建空数组的问题

    2022-10-10 07:11:08
  • pygame画点线方法详解

    2023-04-17 16:36:23
  • Python中logging日志模块代码调试过程详解

    2021-03-13 05:40:32
  • javascript实现获取图片大小及图片等比缩放的方法

    2024-04-16 10:29:33
  • JSON文件及Python对JSON文件的读写操作

    2022-06-18 17:33:51
  • 使用python解析json字段的3种方式实例

    2021-12-24 04:16:27
  • Vue Socket.io源码解读

    2024-06-05 15:28:35
  • 这些有问题的细节设计

    2009-04-20 12:47:00
  • sql带分隔符的截取字符串示例

    2024-01-13 04:52:12
  • 游戏的用户体验营销小札

    2009-08-30 15:13:00
  • Python3.5局部变量与全局变量作用域实例分析

    2023-05-20 23:18:28
  • 脆弱的用户体验

    2010-01-28 12:34:00
  • Python 新建文件夹与复制文件夹内所有内容的方法

    2022-03-22 00:05:05
  • 微信小程序学习之wxs使用教程

    2024-04-29 13:37:57
  • Python run()函数和start()函数的比较和差别介绍

    2022-07-04 18:38:47
  • Django自定义权限及用户分组

    2022-03-13 08:18:31
  • pytest conftest.py文件的使用讲解

    2023-10-16 14:22:44
  • Django如何重置migration的几种情景

    2021-11-17 14:35:34
  • asp之家 网络编程 m.aspxhome.com