|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
сериализация - десериализация
я очень давно уже об этом думаю, но не собирался до конца с этим разобраться, так как мне до сего момента это было не нужно. Теперь мне это нужно, так как в гугле я нашёл только готовые библиотеки и описание всех прелестей и удобства. Но мне так не нужно, хочу сам разобраться и сделать. Но в голове нет не одной зацепки и точки упора для старта. Подскажите принцип, нужные классы и если кто то знает хорошо исполненные уже готовые классы, дайте ссылку, чтобы хоть понять что там происходит.
|
|
|||||
[+1 25.10.13]
[+4 18.03.14] |
|
|
|||||
Перешел по приведенной ссылке - страница заблокирована из за вредоносного содержимого.
|
|
|||||
1. Можно и не искать ничего - есть Amf, вшитый во flashplayer и представленный либами для других платформ (правда некоторые безалаберно сделаны и требуют исправления багов перед использованием)
2. Коли интересны имеено бинарные форматы, читайте спецификации Amf(версия 3) или Protobuf. Amf характерен загонами с укладкой небольших чисел в небольшое количество байт, а так же использованием ссылок на одинаковый текст, может сохранять объекты с переплетёнными/циклическими ссылками друг на друга. Но при сильном желании разобраться можно, ничего сверхъестественного там нет. Типизированные данные туда укладываются как динамические с указанием алиаса типа(указывается вручную перед сериализацией и дессериализацией) и просто при распаковке создается не динамический объект, а объект нужного типа. Protobuf характерен тем, что к нему в комплект обычно идёт генератор классов на нужном языке, но сам не использовал, ничего не знаю про этот формат. Принцип? - Берешь, придумываешь формат, и используешь методы ByteArray (вшитый в flashplayer) для записи/чтения чисел/строк, кстати, там есть вшитый метод для записи объектов сразу в amf-формате. |
|
|||||
Цитата:
Сериализация Т.е. сериализация это просто процесс по переводу данных программы в некий "транспортный" либо формат "хранения данных". И всё. Десериализация это собственно наоборот, взяли некое нечто и распаковали его в структуру для удобства использования. Паковать можно во что угодно. Бинарные форматы вон выше ссылки кинули. Распаковывать - в зависимости от задачи. И я догадываюсь откуда взялась тема. Но там имелось в виду что хмл - это не более чем формат сериализации данных. И использовать его в чистом виде в проекте зачастую глупо, и зачастую удобнее его десериализовать во что-то более адекватное.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
Использовал Protobuf для клиент-серверного приложения, очень компактный формат, очень легко разобраться и начать использовать. "С наскока" объекты там не сериализуются - каждый раз надо собирать по свойствам и полям.
Если нужно передавать данные по сети - Protobuf подходит как нельзя лучше. |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
я не когда ещё не сталкивался с этим, но понял, что это будет полезно разобрать. Вот и сижу, учу. Добавлено через 30 секунд Babylon Спасибо! Полезная ссылка. Добавлено через 3 часа 24 минуты В готовых библиотеках, есть метод, который описывает классы в xml и наоборот. Как это делают? Мне известно только о describeType который в выводит данные о названии класса и имеющихся доступных свойствах и их типах. Может есть ещё какие то классы и методы которые делают тоже самое, но при этом лучше и удобнее? |
|
|||||
Цитата:
всё гораздо проще. Вот то что ты делал в первом своем посте - как раз и есть десериализация. Ты получаешь хмл, а потом каким-то образом из этой хмл заполняешь данные в свои игровые объекты.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Цитата:
После того как я увидел готовые библиотеки - то первое что я подумал, нужно это повторить самому. Там есть метод, который при загрузке xml самостоятельно заполняет класс данными. Или берёт класс и создаёт xml. Это очень удобно! Создал класс считал с него и у тебя уже есть готовый внешний файл который можно менять, и затем им заполнять этот чистый класс модели. Тут конечно ещё можно вообще как я понял отказаться от xml, но пока не уверен и пока остановлюсь на создании xml из класса и наоборот. Потому что мне кажется это вообще не заменимым и это нужно самому уметь. Был бы очень рад за словестное подробное изложение этого процесса. Добавлено через 13 минут Мне самое главное понять какие существуют методы для чтения классов. я знаю только describeType, который возвращает xml. Там очень много лишнего, но распарсить мне особо трудно не будет. Добавлено через 16 минут И ещё у этого метода минус ( хотя возможно это наоборот плюс ) он не видит значений. |
Часовой пояс GMT +4, время: 15:57. |
|
« Предыдущая тема | Следующая тема » |
|
|