Да, с этим я как раз и столкнулся, это можно как-то написать не сильно громоздко ?
Добавлено через 1 час 4 минуты
Цитата:
Сообщение от silin
 Код AS3:
function objToSring(obj:Object):String
{
var res:String = "";
for ( var key:String in obj )
{
res += key + "=" + (objToSring(obj[key]) || obj[key]);
}
return res;
}
но вот с порядком имен никак, имхо - порядок будет непредсказуемым
|
Спасибо, ну логика построения строки не такая как я писал выше по вашему примеру вывело с учетом без сортировки так :

Код AS3:
//main2=key2=key2.2=text2key2.1=text1key1=key1.1=text1key1.2=text2main1=key2=key2.2=text2key2.1=text1key1=key1.1=text1key1.2=text2
а должно быть вот так :
//main2=key2key2.2=text2key2.1=text1main2=key1key1.1=text1key1.2=text2main1=key2key2.2=text2key2.1=text1main1=key1key1.1=text1key1.2=text2
я дошел до этого :

Код AS3:
package {
import flash.display.Sprite;
public class Recursion extends Sprite {
public function Recursion() {
var smtArray:Array = [{
"main1": {
"key1": {
"key1.1": "text1", "key1.2": "text2"
},
"key2": {
"key2.1": "text1", "key2.2": "text2"
}
},
"main2": {
"key1": {
"key1.1": "text1", "key1.2": "text2"
},
"key2": {
"key2.1": "text1", "key2.2": "text2"
}
}
}];
trace(convertToString(smtArray[0]));
}
private function convertToString(obj:*):String {
var res:String = "";
if(obj is Object){
// получаем имена ключей с обьекта(хеш мапы)
var namesHM:Array=[];
for ( var key:String in obj ){
namesHM.push(key);
}
namesHM.sort();//сортируем по имени
for(var n:int=0; n<namesHM.length;n++){
res += namesHM[n] +'='+convertToString(obj[namesHM[n]]);
}
return res;
}else{//типа тут строка
return obj;
}
}
}
}
output:
//main1=key1=key1.1=key1.2=key2=key2.1=key2.2=main2=key1=key1.1=key1.2=key2=key2.1=key2.2=
результат отсортирован ну логика построения строки не соответсвует, есть идеи ?