|
|
|||||
Регистрация: Nov 2010
Сообщений: 150
|
Сериализация в JSON
Подскажите, если кто знает, сериализаторы произвольных объектов (классов) в JSON. Разумеется с использованием метаданных. Т.е. в классе метатегами отмечаем поля для сериализации, их тип и т.д., и соответсвенно на выходе имеем JSON. И желательно с возможностью подмены классов. Т.е. к примеру два класса с общим интерфейсом, сохраняем первый класс а при загрузке указываем чтобы создавался экземпляр второго.
|
|
|||||
В as3 можно использовать подобного рода метаданные? Что-то не слышал раньше.
|
|
|||||
Придется рядом с каждым полем к. нужно сериализовать метатег, уколебешься.
Цитата:
__________________
http://www.chessmax.ru |
|
|||||
Регистрация: Nov 2010
Сообщений: 150
|
Ну не обязательно, можно как с тегом [Bind] поступить. Если он указан у класса то сериализуются все поля, иначе только отмеченные. Та и в любом случае, если не сериализация метатегами то вручную поля записывать, менее универсально а объем кода такой же.
|
|
|||||
Цитата:
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Регистрация: Nov 2010
Сообщений: 150
|
Нет, для этого нужно будет дополнительно хранить тип объекта, но это уже детали реализации.
Добавлено через 5 минут Genzo: Немного не то. Мне нужно сохранять объекты произвольного типа и структуры, тип объекта для восстановления соответственно будет тоже сохраняться. Просто хотел вначале узнать, есть ли уже готовые решения, пока не сталкивался. |
|
|||||
Регистрация: Nov 2010
Сообщений: 150
|
Сохранять нужно в текстовый файл и не все поля класса а только необходимые.
|
|
|||||
.
|
Я покажусь занудой, но что такое "текстовый" файл? Бессмысленный набор байтов. Пишите в текстовый файл, это не запрещено. Ну а [Transient] поддерживается нативно.
Добавлено через 3 минуты registerClassAlias('$', AClass); const o:AClass = new AClass(); o.publicVarOne = 'publicVarOne'; o.publicVarTwo = 'publicVarTwo'; const ba:ByteArray = new ByteArray(); ba.writeObject(o); ba.position = 0; const oo:AClass = ba.readObject() as AClass; |
Часовой пояс GMT +4, время: 10:17. |
|
« Предыдущая тема | Следующая тема » |
|
|