Показать сообщение отдельно
Старый 19.02.2013, 20:53
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 10  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
Код 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"}
__________________
Блог, Twitter
Брюзга.