json_decode () возвращающая ошибка "Примечание: попытка получить свойство не-объекта"

Я пытаюсь написать сценарий, который получает JSON-файл из удаленного места (в данном случае twitch.tv), используя cURL (не думаю, что эта часть слишком актуальна, хотя я все равно упоминаю об этом). Например, можно сказать, что объект JSON, который он возвращает, выглядит примерно так: после сохранения в переменной:

$json_object = {"_links":{"self":"https://api.twitch.tv/kraken/streams/gmansoliver","channel":"https://api.twitch.tv/kraken/channels/gmansoliver"},"stream":null} 

Я обращаюсь к свойству «stream», я пробовал следующий код:

 <?php $json_object = {"_links":{"self":"https://api.twitch.tv/kraken/streams/gmansoliver","channel":"https://api.twitch.tv/kraken/channels/gmansoliver"},"stream":null} $json_decoded = json_decode($json_object, true); echo $json_decoded->stream; ?> 

Когда я попробую это, я получаю сообщение об ошибке «Обратите внимание: попытка получить свойство не-объекта в D: \ Servers \ IIS \ Sites \ mysite \ getstream.php в строке 48".

Я использую json_decode () неправильно, или что-то не так с объектом JSON, который я отправляю из-под дерга?

Редактировать:

Теперь у меня есть объект JSON:

 {"access_token": "qwerty1235","refresh_token": "asdfghjkl=","scope": ["user_read"]} 

Если я попытаюсь декодировать его с помощью json_decode() я получаю следующую ошибку: Object of class stdClass could not be converted to string . Любой совет?

Заранее благодарю за любую помощь

    Вы расшифровываете JSON в массив. json_decode($json_object, true); Вернет массив

     array (size=2) '_links' => array (size=2) 'self' => string 'https://api.twitch.tv/kraken/streams/gmansoliver' (length=48) 'channel' => string 'https://api.twitch.tv/kraken/channels/gmansoliver' (length=49) 'stream' => null 

    Если вы удалите второй параметр и запустите его как json_decode($json_object)

     object(stdClass)[1] public '_links' => object(stdClass)[2] public 'self' => string 'https://api.twitch.tv/kraken/streams/gmansoliver' (length=48) public 'channel' => string 'https://api.twitch.tv/kraken/channels/gmansoliver' (length=49) public 'stream' => null 

    См. Документацию. Когда TRUE, возвращенные объекты будут преобразованы в ассоциативные массивы.

    Вы установили второй параметр ($ assoc) из json_decode () в значение true, что означает, что он возвратит ассоциативный массив вместо объекта. Затем вы попытались ссылаться на стиль объекта. Если вы устанавливаете второй параметр равным true, вам нужно использовать стиль ассоциативного массива для доступа к потоковому контенту. Это было бы:

     $json_decoded['stream'] 

    Если вы установите для параметра $ assoc значение false (или не укажете параметр), вы можете ссылаться на него как на объект:

     $json_decoded->stream 

    Если вы var_dump в переменной $ json_decoded, вы увидите, как это выглядит. Это хороший способ увидеть, с чем вы работаете.