Самый простой способ сделать это - использовать цикл for..in и просматривать все свойства объекта. Затем используйте ObjectUtil.hasMetadata () для каждого свойства и просматривайте все возможные теги метаданных, чтобы упорядочить их в заранее определенные категории.
например.
var gridData:ArrayCollection=new ArrayCollection();
for(var prop:String in obj)
{
var gridItem:Object = new Object();
gridItem.property = prop;
gridItem.value = obj[prop];
for each(var tag:String in metaDataTags)
{
if(ObjectUtil.hasMetadata(obj,prop,tag)
{
gridItem.category = tag;
break;
}
}
gridData.addItem(gridItem);
}
Если вам нужно освоиться со всеми перечислениями и пользовательскими категориями, такими как пример в вашем вопросе, вам придется использовать flash.utils.describeType. Эта функция возвращает XML со всей информацией о свойствах и метаданных. Просто разберите этот XML, и вам будет хорошо.