var toString = function(obj){ var self = this; switch(typeof(obj)){ case 'object': var ret = []; if (obj instanceof Array){ for (var i = 0, len = obj.length; i < len; i++){ ret.push(arguments.callee(obj[i])); } return '[' + ret.join(',') + ']'; } else if (obj instanceof RegExp){ return obj.toString(); } else{ for (var a in obj){ ret.push(a + ':' + arguments.callee(obj[a])); } return '{' + ret.join(',') + '}'; } case 'function': return 'function() {}'; case 'number': return obj.toString(); case 'string': return """ + obj.replace(/(\|")/g, "\$1").replace(/ | | /g, function(a) { return (" "==a)?"\n":(" "==a)?"\r":(" "==a)?"\t":""; }) + """; case 'boolean': return obj.toString(); default: return obj.toString(); }; }
toString([{we:true,df:['sd','地方',{name:"ja'ck"}]}]);
"[{we:true,df:["sd","地方",{name:"ja'ck"}]}]"