Что у вас есть действительный объект, нет ничего JSON об этом, это экземпляр класса PHP ядра stdClass
. Если вы хотите использовать его (например, получить список значений risk_challenge), просто напишите:
foreach ($obj->risk_challenge as $value)
echo ' *> ', $value, PHP_EOL;
Работа выполнена.
Если вы хотите, чтобы преобразовать объект в ассоциативный массив, у вас есть 2 варианта:
$array = (array) $object;//a simple cast
$array = json_decode(//decode with assoc argument = true
json_encode(// but first encode it
$object
), true);
Почему вы используете вторую версию вместо броска? simple: Листинг неглубокий (если какое-либо из свойств/ключей содержит другой объект, то он будет не быть отличным в ассоциативный массив, но он останется объектом. json_decode
действительно работает рекурсивно. В вашем случае, однако, я 'd stick to the cast.
сначала проверьте свой json. Действительно ли это? –
Если это объект, вы уже декодировали его. Экземпляр 'stdClass' - это добросовестный PHP-объект, который вы можете повторить более или напрямую обращаться к своим членам ('$ obj-> risk_challenge [0]', например) –
Вы получили свой ответ в своем сообщении об ошибке. Вам нужно получить строку из результата базы данных, чтобы декодировать ее, и вы даете объект он вместо строки. –