声明:网上转载的挺好的一个序列化方法。(注: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
;
}
}
|