Intereting Posts

Адресный массив PHP, декодированный из JSON

Я загружаю массив 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']); 

Это не работает.

Related of "Адресный массив PHP, декодированный из JSON"

Это потому, что это не объект массива после 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