JavaScript代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
jQuery.extend({
/**
* @see 将javascript数据类型转换为json字符串
* @param 待转换对象,支持 object,array,string,function,number,boolean,regexp
* @return 返回json字符串
*/ toJSON: function (object){
var
type = typeof
object; if
( 'object'
== type) { if
(Array == object.constructor) type =
'array' ;
else
if (RegExp == object.constructor)
type =
'regexp' ;
else type =
'object' ;
}
switch
(type) { case
'undefined' :
case
'unknown' :
return ;
case
'function' :
case
'boolean' :
case
'regexp' :
return
object.toString(); case
'number' :
return
isFinite(object) ? object.toString() : 'null' ;
case
'string' :
return
'"' + object.replace(/(|")/g,
"$1" ).replace(/n|r|t/g,
function (){
var
a = arguments[0]; return
(a == 'n' ) ?
'n' : (a ==
'r' ) ?
'r' : (a ==
't' ) ?
't' :
"" }) +
'"' ;
case
'object' :
if
(object === null )
return
'null' ;
var
results = []; for
( var
property in
object) { var
value = jQuery.toJSON(object[property]);
if
(value !== undefined) results.push(jQuery.toJSON(property) +
':'
+ value); }
return
'{' + results.join( ',' ) +
'}' ;
case
'array' :
var
results = []; for
( var
i = 0; i < object.length; i++) {
var
value = jQuery.toJSON(object[i]);
if
(value !== undefined) results.push(value);
}
return
'[' + results.join( ',' ) +
']' ;
}
}
}); |