声明:网上转载的挺好的一个序列化方法。(注:constructor用于检测该对象的原始构造函数)
网上找了找将js对象序列化为json字符串的方法。结果都不近人意,最后自己写了一个。
注意你得自己为Date增加toString()方法。
function Serialize(obj){ switch (obj.constructor){ case Object: var str
= "{" ; for ( var o in obj){ str
+= o + ":" +
Serialize(obj[o]) + "," ; } if (str.substr(str.length-1)
== "," ) str
= str.substr(0,str.length -1); return str
+ "}" ; break ; case Array: var str
= "[" ; for ( var o in obj){ str
+= Serialize(obj[o]) + "," ; } if (str.substr(str.length-1)
== "," ) str
= str.substr(0,str.length -1); return str
+ "]" ; break ; case Boolean: return "\"" +
obj.toString() + "\"" ; break ; case Date: return "\"" +
obj.toString() + "\"" ; break ; case Function: break ; case Number: return "\"" +
obj.toString() + "\"" ; break ; case String: return "\"" +
obj.toString().replace(/ "/g," \\\ "" )
+ "\"" ; break ; } } |