Я загружаю массив JSON и декодирую его в массив PHP
$jsonfile = file_get_contents('https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=15min&outputsize=full&apikey=demo'); $jsonarray = json_decode($jsonfile); var_dump($jsonarray);
Пока все хорошо, я получаю массив, который выглядит так:
object(stdClass)#1 (2) { ["Meta Data"]=> object(stdClass)#2 (5) { ["1. Information"]=> string(49) "Daily Prices (open, high, low, close) and Volumes" ["2. Symbol"]=> string(5) "AAWVX" ["3. Last Refreshed"]=> string(10) "2017-06-30" ["4. Output Size"]=> string(9) "Full size" ["5. Time Zone"]=> string(10) "US/Eastern" } ["Time Series (Daily)"]=> object(stdClass)#3 (105) { ["2017-06-30"]=> object(stdClass)#4 (5) { ["1. open"]=> string(7) "10.5100" ["2. high"]=> string(7) "10.5100" ["3. low"]=> string(7) "10.5100" ["4. close"]=> string(7) "10.5100" ["5. volume"]=> string(1) "0" } ["2017-06-29"]=> object(stdClass)#5 (5) { ["1. open"]=> string(7) "10.4800" ["2. high"]=> string(7) "10.4800" ["3. low"]=> string(7) "10.4800" ["4. close"]=> string(7) "10.4800" ["5. volume"]=> string(1) "0" } ["2017-06-28"]=> object(stdClass)#6 (5) { ["1. open"]=> string(7) "10.5600" ["2. high"]=> string(7) "10.5600" ["3. low"]=> string(7) "10.5600" ["4. close"]=> string(7) "10.5600" ["5. volume"]=> string(1) "0" } ...
Но когда я пытаюсь обратиться к массиву как
var_dump($jsonarray['Meta Data']);
Это не работает.
Это потому, что это не объект массива после json_decode
без параметров, это объект stdClass. Когда вы декодируете массив json, если вы хотите объект массива, вам нужно установить 2-й параметр ( $assoc
boolean) в true
. Поэтому вы должны иметь
$jsonfile = file_get_contents('https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=15min&outputsize=full&apikey=demo'); $jsonarray = json_decode($jsonfile,true); var_dump($jsonarray);
для того, чтобы стать объектом массива. (Обратите внимание на изменения, внесенные мной во json_decode
строку, добавив true
к функции json_decode
.
Вы можете больше узнать о параметрах json_decode
на php.net