|
|
|||||
Object to String
Друзья, подскажите пожалуйста есть ли способ преобразовать object (со всеми сложенными в него элементами) в string? Речь идет о таком вот объекте (к примеру):
var objValue:Object = { a: "10", b:true, c:{ sub_c:"str", next_sub:[1, 2, 3, 4, 5], end_sub:234.4 }}; Может есть какая то волшебная фун-ция, потому как через рекурсию у меня что то не получается (( |
|
|||||
есть волшебный JSON, правда переносы строк он не втыкает, потому будет не так наглядно )
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
public function look (object:*):String { var result:String = ""; if (!object || object is Boolean || object is int || object is String || object is Number) { result += "(" + String(object) + ")"; } else if (object is Array) { result += "["; for (var i:int = 0; i < object.length; i++) { result += look(object[i]); } result += "]"; } else if (object is Object) { result += "{"; for (var key:* in object) { result += String(key) + ":" + look( object[key] ); } result += "}"; } return result; } Последний раз редактировалось bav; 21.12.2010 в 11:54. |
|
|||||
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
Да, пожалуй.
|
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
public function Main():void { var objValue:Object = { a: "10", b:true, c:{ sub_c:"str", next_sub:[1, 2, 3, 4, 5], end_sub:234.4 }}; changeTree2(objValue,"objValue", ""); } private function changeTree2(xml:*, _name:String, indent:String):void { var iterate:Boolean = true; if (typeof xml == "object" && !(xml is Array)) { trace(indent + _name + ": [Object]"); } else if (xml is Array) { trace(indent + _name + ": [Array]"); } else { iterate = false; trace(indent + _name + ": " + String(xml)); } if(iterate) { for (var newName:String in xml) { changeTree2(xml[newName], newName, indent+"\t"); } } }
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
О, ребята благодарю за код! Вы облегчили мне жизнь!!!!!!
Добавлено через 2 часа 39 минут А вот еще вопрос, нельзя ли результаты не выводить последовательно через trace, а реализовать задачу так, что бы в итоге получилась суммарная переменная string вида. Например: var objValue:Object = { a:'10', b:true, c:{ sub_c:'str', next_sub:[1, 2, 3, 4, 5], end_sub:234.4 }}; function objectToString(objValue:Object):String{ // тело } var strObjData:String = objectToString(objValue); trace(strObjData); a: 10 c: [Object] end_sub: 234.4 sub_c: "str" next_sub: [Array] 0: 1 1: 2 2: 3 3: 4 4: 5 b: true Добавлено через 2 часа 46 минут Переделал вот в такой вариант: function changeTree2(xml:*, _name:String, indent:String, save:String = ''):String { var iterate:Boolean = true; if (typeof xml == "object" && !(xml is Array)) save+=indent + _name + ": [Object]\n"; else if (xml is Array) save+=indent + _name + ": [Array]\n"; else { iterate = false; save+=indent + _name + ": " + String(xml)+'\n'; } if(iterate) for (var newName:String in xml) save+=changeTree2(xml[newName], newName, indent+"\t"); return save; } var objValue:Object = { a: "10", b:true, c:{ sub_c:"str", next_sub:[1, 2, 3, 4, 5], end_sub:234.4 }}; var strObj:String = changeTree2(objValue,"objValue", ""); trace(strObj); Последний раз редактировалось ERrorMAKros; 21.12.2010 в 15:05. |
|
|||||
советую потрогать этот класс: com.maccherone.json.JSON если сделать
то мы получим красивый результат без лишней головоломки. Вот пример того что на выходе: { "allow_swap": true, "field": "1", "action_log": "", "item_hint": 101, "update_required": false, "update_time": 26, "turns": "6", "last_swap": false, "score": "-5", "game_data": [ { "gi_creation_postdate": "1292955762", "gi_item4": "0", "gi_cat_food_type": "0", "gi_cat_food_eaten": "0", "gi_item3": "0", "gi_item2": "0", "gi_item1": "1016", "gi_cat_sleep_time": "0", "gi_special_component": "N", "gi_id": "111409", "gi_y": "4", "gi_state": "NORMAL", "gi_game_id": "1375", "gi_x": "3", "gi_shrimp_direction": "LEFT" }, { "gi_creation_postdate": "1292955719", "gi_item4": "6", "gi_cat_food_type": "0", "gi_cat_food_eaten": "0", "gi_item3": "3", "gi_item2": "2", "gi_item1": "1013", "gi_cat_sleep_time": "0", "gi_special_component": "N", "gi_id": "111384", "gi_y": "3", "gi_state": "NORMAL", "gi_game_id": "1375", "gi_x": "4", "gi_shrimp_direction": "LEFT" } ], "action_data": [], "post_game_data": [], "paused": false, "filled_cans": "0" } |
Часовой пояс GMT +4, время: 15:21. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|