解决从JSON解码的PHP数组

时间:2017-07-03 20:46:46

标签: php arrays 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']);

它没有用。

1 个答案:

答案 0 :(得分:9)

这是因为没有参数的json_decode()会尝试将您的json字符串转换为stdClass对象。如果要将其转换为数组,则需要将第二个参数($assoc布尔值)设置为true

$json = file_get_contents('LINK TO JSON OUTPUT'); 
$array = json_decode($json, true);