
Код AS3:
package {
import flash.display.Sprite;
public class JSONTest extends Sprite {
public function JSONTest() {
trace(toJSON(new TestClass(), ITestClassInterface));
}
}
}
import flash.display.MovieClip;
import flash.utils.describeType;
interface ITestClassInterface {
function get prop1() : String;
function get prop2() : String;
}
class TestClass extends MovieClip implements ITestClassInterface {
public function TestClass() {
super();
}
public function get prop1() : String {
return "123";
}
public function get prop2() : String {
return "321";
}
}
function toJSON(object : Object, fromInterface : Class) : String {
var description : XML = describeType(fromInterface);
var accessors : XMLList = description.factory..accessor;
var resultObject : Object = {};
for each (var accessor : XML in accessors) {
var accessorName : String = accessor.@name.toString();
resultObject[accessorName] = object[accessorName];
}
return JSON.stringify(resultObject);
}
Результат:

Код AS3:
{"prop1":"123","prop2":"321"}