1 //#region 将json对象转换成json字符串
2 function JsonToStr(object) {
3 var type = typeof object;
4 if ('object' == type) {
5 if (Array == object.constructor)
6 type = 'array';
7 else if (RegExp == object.constructor)
8 type = 'regexp';
9 else
10 type = 'object';
11 }
12 switch (type) {
13 case 'undefined':
14 return "\"\"";
15 break;
16 case 'unknown':
17 return;
18 break;
19 case 'function':
20 case 'boolean':
21 case 'regexp':
22 return object.toString();
23 break;
24 case 'number':
25 return isFinite(object) ? object.toString() : 'null';
26 break;
27 case 'string':
28 return '"' + object.replace(/(\\|\")/g, "\\$1").replace(/\n|\r|\t/g,
29 function () {
30 var a = arguments[0];
31 return (a == '\n') ? '\\n' :
32 (a == '\r') ? '\\r' :
33 (a == '\t') ? '\\t' : ""
34 }) + '"';
35 break;
36 case 'object':
37 if (object === null) return 'null';
38 var results = [];
39 for (var property in object) {
40 var value = JsonToStr(object[property]);
41 if (value !== undefined)
42 results.push(JsonToStr(property) + ':' + value);
43 }
44 return '{' + results.join(',') + '}';
45 break;
46 case 'array':
47 var results = [];
48 for (var i = 0; i < object.length; i++) {
49 var value = JsonToStr(object[i]);
50 if (value !== undefined) results.push(value);
51 }
52 return '[' + results.join(',') + ']';
53 break;
54 }
55 }
56 //#endregion