json_decode для массива

Я пытаюсь декодировать строку JSON в массив, но я получаю следующую ошибку.

Неустранимая ошибка: нельзя использовать объект типа stdClass как массив в C: \ wamp \ www \ temp \ asklaila.php в строке 6

Вот код:

<?php $json_string = 'http://www.domain.com/jsondata.json'; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata); print_r($obj['Result']); ?> 

В соответствии с документацией вам нужно указать, хотите ли вы ассоциативный массив вместо объекта из json_decode , это будет код:

 json_decode($jsondata, true); 

попробуй это

 $json_string = 'http://www.domain.com/jsondata.json'; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata,true); echo "<pre>"; print_r($obj); 

Это поздний вклад, но существует допустимый случай для литья json_decode с (array) .
Рассмотрим следующее:

 $jsondata = ''; $arr = json_decode($jsondata, true); foreach ($arr as $k=>$v){ echo $v; // etc. } 

Если $jsondata когда-либо возвращается как пустая строка (как это часто бывает у меня), json_decode вернет NULL , что приведет к ошибке. Предупреждение: неверный аргумент, предоставленный foreach () в строке 3 . Вы можете добавить строку if / then code или trernary operator, но IMO чище просто изменить строку 2 на …

 $arr = (array) json_decode($jsondata,true); 

… если вы не json_decode используете json_decode миллионы больших массивов, и в этом случае, как указывает @ TCB13, производительность может быть отрицательно выполнена.

На всякий случай, если вы работаете на php менее 5.2, вы можете использовать этот ресурс.

http://techblog.willshouse.com/2009/06/12/using-json_encode-and-json_decode-in-php4/

http://mike.teczno.com/JSON/JSON.phps

Это также изменит его на массив:

 <?php print_r((array) json_decode($object)); ?> 

json_decode поддерживает второй аргумент, когда он устанавливает значение TRUE он возвращает Array а stdClass Object . Проверьте страницу руководства json_decode чтобы просмотреть все поддерживаемые аргументы и их данные.

Например, попробуйте следующее:

 $json_string = 'http://www.example.com/jsondata.json'; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata, TRUE); // Set second argument as TRUE print_r($obj['Result']); // Now this will works! 

Попробуйте это

 <?php $json_string = 'http://www.domain.com/jsondata.json'; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata, true); echo "<pre>"; print_r($obj['Result']); ?> 

в PHP json_decode конвертировать json-данные в связанный с PHP массив
Для Ex: $php-array= json_decode($json-data, true); print_r($php-array); $php-array= json_decode($json-data, true); print_r($php-array);

Попробуйте вот так:

 $json_string = 'https://example.com/jsondata.json'; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata); print_r($obj->Result); foreach($obj->Result as $value){ echo $value->id; //change accordingly }