/* * TraceObject CLASS * * @ CREATED BY: ycccc8202 * @ PURPOSE: 打印对象字符串 * @ DATE:2007.6.22 * Usage example: * import com.ycccc.utils.TraceObject; * var a = [[1, 2, 3], {i:1, j:2}, [{m:3, n:"4"}, 5], "6", {j:["7", 8], k:{p:9, q:"10"}}]; * var b = {i:8, j:{o:1, p:2}, k:[3, 4], l:{r:"4", s:["5", 6]}, m:"7"}; * var c = [1, 2, 3]; * var d = {i:1, j:2, k:3}; * trace(TraceObject.toString(a)); * trace(TraceObject.toString(b)); * trace(TraceObject.toString(c)); * trace(TraceObject.toString(d)); */ class com.ycccc.utils.TraceObject { /** * Private Static members */ private static var RESULT_STRING = ""; /** * Public Static methods */ public static function toString(obj:Object) { RESULT_STRING = ObjToString(obj).substr(0, -1); return RESULT_STRING; } /** * Private Static methods */ private static function ObjToString(obj:Object):String { var resultStr:String = ""; var type:Object = typeof obj; switch (type) { case "number" : return obj+","; case "string" : return "\""+obj+"\","; case "object" : if (obj.length<>undefined) { if (obj.length == 0) { return "[],"; } resultStr += "["; for (var _i:Number = 0; _i<obj.length; _i++) { resultStr += ObjToString(obj[_i]); } resultStr = resultStr.substr(0, -1); resultStr += "],"; } else { var _null = false; resultStr += "{"; for (var _i in obj) { _null = true; resultStr += _i+":"+ObjToString(obj[_i]); } if (!_null) { return "{},"; } resultStr = resultStr.substr(0, -1); resultStr += "},"; } return resultStr; } } } //用法: import com.ycccc.utils.TraceObject; var a = [[1, 2, 3], {i:1, j:2}, [{m:3, n:"4"}, 5], "6", {j:["7", 8], k:{p:9, q:"10"}}]; var b = {i:8, j:{o:1, p:2}, k:[3, 4], l:{r:"4", s:["5", 6]}, m:"7"}; var c = [1, 2, 3]; var d = {i:1, j:2, k:3}; trace(TraceObject.toString(a)); trace(TraceObject.toString(b)); trace(TraceObject.toString(c)); trace(TraceObject.toString(d)); //p.s:希望对大家有些帮助 v(-_-)v