2016-09-07 4 views
-2

У меня возникают проблемы с получением данных из JSON с PHP.Ошибка JSON для PHP - массив

JSON строку

{"cpresult":{"apiversion":"2","error":"Access denied","data":{"reason":"Access denied","result":"0"},"type":"text"}} 

же JSON декодируются

array (
    'cpresult' => 
    array (
    'apiversion' => '2', 
    'error' => 'Access denied', 
    'data' => 
    array (
     'reason' => 'Access denied', 
     'result' => '0', 
    ), 
    'type' => 'text', 
), 
) 

PHP код

$get_accounts = json_decode($get_accounts); 
echo $get_accounts['cpresult']['data'][0]['result']; 

ошибки: Фатальная ошибка: Не удается использовать объект типа StdClass как массив

+0

'var_dump ($ get_accounts);' и посмотреть, как он декодируется. –

+0

Либо декодировать как массив с 'true', либо использовать' $ get_accounts ['cpresult'] ['data'] ['result'] 'или использовать' $ get_accounts-> cpresult-> data-> result'. – AbraCadaver

ответ

1

json_decode будет возвращать объект по умолчанию (в отличие от ассоциативного массива). Вам придется либо использовать результат со стрелкой указателей или add a second parameter to the json_decode call ...

json_decode($json) 
$get_accounts->cpresult 

или

json_decode($json, true) 
$get_accounts['cpresult'] 
0

Ну, ваша проблема в том, что вы думаете об объектах, PHP, как они были объектами Javascript. В PHP вы не можете получить доступ к свойствам объекта через [] следующим образом: $get_accounts['cpresult']. Вместо этого вы должны получить к ним доступ через ->$get_accounts->cpresult