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(
','
) +
']'
;
}
}
});
|