package
{
import flash.utils.describeType;
public class TestVo
{
public function TestVo()
{
}
public var expe:int;
public var gCoin:Number;
public var expeId:int;
public var star:Number;
public var teamId:int;
public var descr:String;
public var ring:int;
public var orcStr:*;
public var mon:*;
public var good:*;
public function toString():String
{
var xml:XML = describeType(this);
var str:String = '...TestVo ...\n';
for (var i:int=0; i<xml.child('variable').length(); i++)
{
var vName:String = '' + xml.child('variable')[i].attribute('name');
str += '...*' + vName + ' : ' + this[vName] + '\n';
}
str += '... TestVo ...\n';
return str;
}
}
}
package
{
import flash.display.Sprite;
import flash.utils.describeType;
import flash.utils.getQualifiedClassName;
import com.adobe.serialization.json.JSON;
public class Test1 extends Sprite
{
public function Test1()
{
var vo:TestVo = new TestVo();
var str:String = '{"expeId":1,"star":2,"teamId":3,"descr":4,"ring":5,"orcStr":6,"expe":7,"mon":8,"gCoin":9}';
var obj:Object = JSON.decode(str);
var xml:XML = describeType(vo);
trace("..xml..start..\n"+xml+"\n....xml..end...");
for (var i:int=0; i<xml.child('variable').length(); i++)
{
var vName:String = '' + xml.child('variable')[i].attribute('name');
trace("obj.hasOwnProperty(vName) : "+obj.hasOwnProperty(vName));
if (obj.hasOwnProperty(vName) == false)
{
trace("continue...vName : "+vName);
continue;
}
if (getQualifiedClassName(vo[vName])=='String')
{
vo[vName] = '' + obj[vName];
}
else if (getQualifiedClassName(vo[vName])=='Number')
{
vo[vName] = Number(obj[vName]);
}
else if (getQualifiedClassName(vo[vName])=='int')
{
vo[vName] = Math.round(int(obj[vName]));
}
else
{
vo[vName] = obj[vName];
}
trace("vo["+vName+"]***"+vo[vName]);
}
trace(vo.toString());
}
}
}