Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Загадка Flash - PHP Serializer Class, не правильно работает unserialize (http://www.flasher.ru/forum/showthread.php?t=186623)

КорДум 06.11.2012 19:51

У вас не будет сериализовать отлично, если там будет массив. Понятно? Только и всего. Конкретно по проблеме пытаюсь помочь. Пишу десериализатор на скорую руку.

rolling_kz 06.11.2012 19:56

понятно, черт с ним с массивом. не используем.

Добавлено через 3 минуты
хотя вот:
Код AS3:

                                var obj:Object = new Object;
                                obj.aaa = new Array();
                                obj.aaa[0]=0;
                                obj.aaa[1]=1;
                                obj.aaa[2]=2;
                                var tmpStr:String = Serializer.serialize(obj);
 
                                var obj2:* = Serializer.unserialize(tmpStr);

при отладке дает obj2:
Код AS3:

obj2        Object (@5bcf401)        
        aaa        Object (@5bcf479)       
                [0]        0       
                [1]        1       
                [2]        2


КорДум 06.11.2012 20:01

А должен быть массив.

rolling_kz 06.11.2012 20:03

но как только два массива:
Код AS3:

var obj:Object = new Object;
                                obj.aaa = new Array();
                                obj.aaa[0]=0;
                                obj.aaa[1]=1;
                                obj.aaa[2]=2;
                                obj.bbb = new Array();
                                obj.bbb[0]=0;
                                obj.bbb[1]=1;
                                obj.bbb[2]=2;
                                var tmpStr:String = Serializer.serialize(obj);
 
                                var obj2:* = Serializer.unserialize(tmpStr);

то начинается глюк:
Код AS3:

obj2        Object (@5d4c731)        
        bbb        Object (@5d4c7a9)       
        undefined        undefined

Код AS3:

tmpStr        "O:8:"stdClass":2:{s:3:"bbb";O:8:"stdClass":3:{s:1:"0";i:0;s:1:"1";i:1;s:1:"2";i:2;}s:3:"aaa";O:8:"stdClass":3:{s:1:"0";i:0;s:1:"1";i:1;s:1:"2";i:2;}}"

Добавлено через 1 минуту
я понял про что Вы говорите. да пусть станет объектом, хотя согласен коряво написано.

Добавлено через 2 минуты
главная проблема только один объект или массив пропускает.

GBee 06.11.2012 20:16

А почему обычный ДЖСон не устроил? Я не вижу типизированных объектов.

КорДум 06.11.2012 20:23

Да на самом деле. Я вот щас десериализатор пишу и меня уже задолбало. То ли бошк из-за недосыпа не варит. В любом случае, это такой геморрой. А JSON явно тут был бы к месту. Тем более, есть нативная поддержка, что на пхп, что на ас3.

GBee 06.11.2012 20:27

PHP код:

<?php
    
class foo
    
{
        var 
$aaa = array(0,1,2);
        var 
$bbb = array(0,1,2);
    }
    
$obj = new foo;
    echo 
serialize($obj);
?>

дает

O:3:"foo":2:{s:3:"aaa";a:3:{i:0;i:0;i:1;i:1;i:2;i:2;}s:3:"bbb";a:3:{i:0;i:0;i:1;i:1;i:2;i:2;}}

Цитата:

tmpStr "O:8:"stdClass":2:{s:3:"bbb";O:8:"stdClass":3:{s:1:"0";i:0;s:1:"1";i:1;s:1:"2";i:2;}s:3:"aaa";O:8:"stdClass":3:{s:1:"0";i:0;s:1:"1";i:1;s:1:"2";i:2;}} "

rolling_kz 06.11.2012 20:28

Цитата:

Сообщение от КорДум (Сообщение 1103112)
Да на самом деле. Я вот щас десериализатор пишу и меня уже задолбало. То ли бошк из-за недосыпа не варит. В любом случае, это такой геморрой. А JSON явно тут был бы к месту. Тем более, есть нативная поддержка, что на пхп, что на ас3.

ну вроде php.serialize - нативно тоже.

а в остальном не вижу преимуществ JSON.

GBee 06.11.2012 20:28

о ходу весь класс кривой. и сериализатор и обратно

Добавлено через 1 минуту
Цитата:

а в остальном не вижу преимуществ JSON.
Он работает! :о)

rolling_kz 06.11.2012 20:36

так и этот работает.
много лет юзаем. только вот обна бага попалась.
до этого с php только плоские объекты посылали типа:
Код AS3:

var obj:Object = {aaa:1, bbb:2 };

Добавлено через 46 секунд
а вот из флаша туда многосложные объекты отправляем все без багов.


Часовой пояс GMT +4, время: 07:54.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.