2017-08-05 187 views
1

我有一个JSON文件,我想用PHP访问并获取特定数据。如何从PHP获取JSON数据

的Json

{ 
    "time": { 
    "updated": "Aug 5, 2017 11:29:00 UTC", 
    "updatedISO": "2017-08-05T11:29:00+00:00", 
    "updateduk": "Aug 5, 2017 at 12:29 BST" 
    }, 
    "disclaimer": "This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org", 
    "chartName": "Bitcoin", 
    "bpi": { 
    "USD": { 
     "code": "USD", 
     "symbol": "$", 
     "rate": "3,162.7838", 
     "description": "United States Dollar", 
     "rate_float": 3162.7838 
    }, 
    "GBP": { 
     "code": "GBP", 
     "symbol": "£", 
     "rate": "2,425.3554", 
     "description": "British Pound Sterling", 
     "rate_float": 2425.3554 
    }, 
    "EUR": { 
     "code": "EUR", 
     "symbol": "€", 
     "rate": "2,686.2440", 
     "description": "Euro", 
     "rate_float": 2686.244 
    } 
    } 
} 

我想从JSON对象中的数据,并试图这些事情。没有任何运气。

$test = $json_data['bpi']['EUR'][0]['rate']; 
echo $test; 

$array = json_decode($json_data, true); 
echo $array->bpi->EUR->rate; 
echo $array['bpi'][2]['rate']; 
echo $array[1]['bpi'][1]; 

有人能帮助我在这里

回答

4

首先关闭所有bpi是assoc命令阵列(键 - 字符串,而不是整数)

$data = '{your_json_string_here}'; 
# as array 
$array = json_decode($data, true); 

echo $array['bpi']['EUR']['rate']; # 2,686.2440 

# as object 
$array = json_decode($data); 

echo $array->bpi->EUR->rate; # 2,686.2440 

使用print_r($array);进行调试。希望这可以帮助。