|
|
|||||
Работа с JSON в FlashPlayer 11
Здравствуйте. Есть класс MCExample унаследованный от MovieClip. У него есть 2 свойства: prop1 и prop2.
Есть массив состоящий из обьектов класса MCExample. Нужно из этого массива создать строку в формате JSON. Проблема в том, что метод JSON.stringify() пихает не только эти 2 свойства: prop1 и prop2 каждого элемента массива. Он туда всовывает все свойства, унаследованные от мувиклипа и все остольное унаследованное по цепочке аж до Object. А мне нужно чтобы туда добавлялись лишь prop1 и prop2 каждого обьекта. Тоесть экземпляр класса MCExample с его единственными двумя свойствами. Подскажите, пожалуйста как это сделать. Знаю что это возможно. Надо похимичить над параметрами метода stringify() или переопределять метод toJSON(), но я не понимаю что это. Слишком умно как-то написано (хоть и на русском языке). Добавлено через 16 минут Все, наконец - то! С мыслью, что модераторы забанят за лень по строчке расшифровал адобовский язык. Значит, в классе MCExample надо создать метод Может кому пригодится.
__________________
Я мало чего умею, но зато хорошо умею учиться... Последний раз редактировалось HardCoder; 20.12.2011 в 21:42. |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
это корявое решение
|
|
|||||
Сначало код, а уж потом плюсик))
Ну как вариант. Ну я бы и как есть оставил. Возможно будет быстрее, но менее универсально и легче ошибиться.
__________________
http://www.chessmax.ru Последний раз редактировалось Inet_PC; 20.12.2011 в 22:08. |
|
|||||
Цитата:
Если можно, еще вопрос об оптимизации. Приветствуется ли сокращения среди программистов? Например Будет ли вариант 2 более благоприятным для парсера во время преобразования строки в обьект?
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
Цитата:
Цитата:
__________________
http://www.chessmax.ru Последний раз редактировалось Inet_PC; 20.12.2011 в 22:16. |
|
|||||
Регистрация: Jun 2009
Сообщений: 56
|
Я вот всё равно не догоняю.
Справка Цитата:
class A { public var a:int; public var b:int; public function toJSON(k:String):* { return "Trololo"; } } Цитата:
|
|
|||||
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); } |
Часовой пояс GMT +4, время: 11:06. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|