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