Перевод из json в объект

Тема в разделе "Как сделать...", создана пользователем vipTelnet, 4 окт 2013.

Статус темы:
Закрыта.
  1. vipTelnet

    vipTelnet Постоялец

    Регистр.:
    14 янв 2013
    Сообщения:
    135
    Симпатии:
    11
    Всем привет

    есть к примеру вот такой json объект как я понимаю
    PHP:
    a:5:{s:5:"width";i:422;s:6:"height";i:600;s:4:"file";s:78:"2012/09/1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa.jpg";s:5:"sizes";a:2:{s:9:"thumbnail";a:4:{s:4:"file";s:78:"1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa-183x260.jpg";s:5:"width";i:183;s:6:"height";i:260;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:{s:4:"file";s:78:"1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa-211x300.jpg";s:5:"width";i:211;s:6:"height";i:300;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_meta";a:10:{s:8:"aperture";i:0;s:6:"credit";s:0:"";s:6:"camera";s:0:"";s:7:"caption";s:0:"";s:17:"created_timestamp";i:0;s:9:"copyright";s:0:"";s:12:"focal_length";i:0;s:3:"iso";i:0;s:13:"shutter_speed";i:0;s:5:"title";s:0:"";}}
    или такой
    PHP:
    a:5:{s:5:"width";i:429;s:6:"height";i:600;s:4:"file";s:27:"2012/06/Sherif_2_poster.jpg";s:5:"sizes";a:2:{s:9:"thumbnail";a:4:{s:4:"file";s:27:"Sherif_2_poster-183x255.jpg";s:5:"width";i:183;s:6:"height";i:255;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:{s:4:"file";s:27:"Sherif_2_poster-214x300.jpg";s:5:"width";i:214;s:6:"height";i:300;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_meta";a:10:{s:8:"aperture";i:0;s:6:"credit";s:0:"";s:6:"camera";s:0:"";s:7:"caption";s:0:"";s:17:"created_timestamp";i:0;s:9:"copyright";s:0:"";s:12:"focal_length";i:0;s:3:"iso";i:0;s:13:"shutter_speed";i:0;s:5:"title";s:0:"";}}
    это запись meta_value для значения meta_key = _wp_attached_file из таблицы Перейти по ссылке
    Как Вs наверное уже догадались это настройки Wordpress
    что ни как не получается их обратно в объект преобразовать
    PHP:
    print_rjson_decode'a:5:{s:5:"width";i:422;s:6:"height";i:600;s:4:"file";s:78:"2012/09/1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa.jpg";s:5:"sizes";a:2:{s:9:"thumbnail";a:4:{s:4:"file";s:78:"1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa-183x260.jpg";s:5:"width";i:183;s:6:"height";i:260;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:{s:4:"file";s:78:"1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa-211x300.jpg";s:5:"width";i:211;s:6:"height";i:300;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_meta";a:10:{s:8:"aperture";i:0;s:6:"credit";s:0:"";s:6:"camera";s:0:"";s:7:"caption";s:0:"";s:17:"created_timestamp";i:0;s:9:"copyright";s:0:"";s:12:"focal_length";i:0;s:3:"iso";i:0;s:13:"shutter_speed";i:0;s:5:"title";s:0:"";}}' true ) );

    echo  
    json_last_error (  );
    Выдает 4
    посмотрел 4 = JSON_ERROR_SYNTAX
    а где ошибка что то ни как не пойму
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Потому что это не json, это serialize Пользуй функцию unserialize
     
    Maverik и vipTelnet нравится это.
  3. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.407
    PHP:
    var_dump(unserialize('a:5:{s:5:"width";i:422;s:6:"height";i:600;s:4:"file";s:78:"2012/09/1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa.jpg";s:5:"sizes";a:2:{s:9:"thumbnail";a:4:{s:4:"file";s:78:"1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa-183x260.jpg";s:5:"width";i:183;s:6:"height";i:260;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:{s:4:"file";s:78:"1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa-211x300.jpg";s:5:"width";i:211;s:6:"height";i:300;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_meta";a:10:{s:8:"aperture";i:0;s:6:"credit";s:0:"";s:6:"camera";s:0:"";s:7:"caption";s:0:"";s:17:"created_timestamp";i:0;s:9:"copyright";s:0:"";s:12:"focal_length";i:0;s:3:"iso";i:0;s:13:"shutter_speed";i:0;s:5:"title";s:0:"";}}'));

    KillDead, опередил чуток :-]
     
    vipTelnet нравится это.
  4. vipTelnet

    vipTelnet Постоялец

    Регистр.:
    14 янв 2013
    Сообщения:
    135
    Симпатии:
    11
    Ешкин кот я 3 часа ломал голову,
    :alko::idea::sun:
    а оно вот как значит, я же и сам раньше использовал эту serialize и unserialize для хранения массивов и объектов в базе
    спасибо
    теперь все работает.:thenks::yahoo:
    Код:
    Array
    (
        [width] => 422
        [height] => 600
        [file] => 2012/09/1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa.jpg
        [sizes] => Array
            (
                [thumbnail] => Array
                    (
                        [file] => 1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa-183x260.jpg
                        [width] => 183
                        [height] => 260
                        [mime-type] => image/jpeg
                    )
    
                [medium] => Array
                    (
                        [file] => 1346751489_ikinokz.net_1346615885_70975185ebad03bf14f8cae3530e4faa-211x300.jpg
                        [width] => 211
                        [height] => 300
                        [mime-type] => image/jpeg
                    )
    
            )
    
        [image_meta] => Array
            (
                [aperture] => 0
                [credit] =>
                [camera] =>
                [caption] =>
                [created_timestamp] => 0
                [copyright] =>
                [focal_length] => 0
                [iso] => 0
                [shutter_speed] => 0
                [title] =>
            )
    
    )
     
Статус темы:
Закрыта.