[英]Accessing values in a JSON object, array object in PHP
查看以下JSON字符串時:
$string = '{"data":{"exchange_rates":{"2":[{"cryptoCurrency":"BTC","rateForCashCurrency":{"EUR":1273.261000,"USD":1358.5694870000000000}}],"4":[{"cryptoCurrency":"BTC","rateForCashCurrency":{"EUR":1033.839000,"USD":1103.1062130000000000}}]}},"message":null,"status":"ok"}';
我可以使用以下命令在php中訪問狀態鍵的值:
$rates_o=json_decode($string);
echo $rates_o->status; (using the example string above result is "ok")
我完全迷失的是如何在上面的JSON中訪問exchange_rates“ 4” EUR和USD匯率中的Label /值。 我認為這是由於對象位於響應的對象設置中的數組中引起的嗎?
我試過了:
print_r($rates_o->data->exchange_rates->4[0]);
但是在PHP中得到一個解析錯誤:
PHP Parse error: syntax error, unexpected '4' (T_LNUMBER), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$'
遍歷上面JSON的“ 4”部分中的不同貨幣條目和值(USD EUR等)的最簡單方法是什么?
這是我的第一篇文章,我嘗試查找類似的示例,但是有很多但找不到解決此“嵌套”問題的解決方案,因為這些示例都沒有與此相關的任何線索。
json_decode使用第二個參數將json解碼為數組,
那么您將可以正常訪問它,如下所示:
$rates_o=json_decode($string, true);
print_r($ar['data']['exchange_rates'][4][0]);
訪問名稱為數字的對象屬性時,必須將其放在{}之間。 所以:
print_r($data->data->exchange_rates->{4}[0]);
干得好:
$string = '{"data":{"exchange_rates":{"2":[{"cryptoCurrency":"BTC","rateForCashCurrency":{"EUR":1273.261000,"USD":1358.5694870000000000}}],"4":[{"cryptoCurrency":"BTC","rateForCashCurrency":{"EUR":1033.839000,"USD":1103.1062130000000000}}]}},"message":null,"status":"ok"}';
$rates_o = json_decode($string);
var_dump($rates_o->data->exchange_rates->{4}[0]);
->
object(stdClass)#4 (2) {
["cryptoCurrency"]=>
string(3) "BTC"
["rateForCashCurrency"]=>
object(stdClass)#5 (2) {
["EUR"]=>
float(1033.839)
["USD"]=>
float(1103.106213)
}
}
遍歷上面JSON的“ 4”部分中的不同貨幣條目和值(USD EUR等)的最簡單方法是什么?
可以像這樣遍歷匯率,
$x=array('EUR','USD');
foreach($x as $v)
echo $rates_o->data->exchange_rates->{4}[0]->rateForCashCurrency->$v . PHP_EOL;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.