查看以下JSON字符串时:
--
我可以使用以下方法访问php中状态键的值:
$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"}';
我完全迷失的地方是如何访问exchange_rates" 4"中的标签/值。上述JSON中的欧元和美元汇率。我认为这是因为对象是在响应的对象设置中的数组中?
我试过了:
$rates_o=json_decode($string);
echo $rates_o->status; (using the example string above result is "ok")
但在PHP中得到一个解析错误:
print_r($rates_o->data->exchange_rates->4[0]);
在" 4"部分中,循环显示不同货币条目和值(USD EUR等)的最简单方法是什么?上面的JSON?
这是我的第一篇文章,我尝试找到类似的例子,但有很多但却无法找到解决这个问题的方法。问题,因为没有一个例子有关于此的任何线索。
答案 0 :(得分:2)
json_decode采用第二个参数将json解码为数组,
然后您可以正常访问它,如下所示:
$rates_o=json_decode($string, true);
print_r($ar['data']['exchange_rates'][4][0]);
答案 1 :(得分:1)
访问其名称为数字的对象属性时,必须将其放在{}之间。所以:
print_r($data->data->exchange_rates->{4}[0]);
答案 2 :(得分:0)
在" 4"部分中,循环显示不同货币条目和值(USD EUR等)的最简单方法是什么?上面的JSON?
可以像这样循环汇率,
$x=array('EUR','USD');
foreach($x as $v)
echo $rates_o->data->exchange_rates->{4}[0]->rateForCashCurrency->$v . PHP_EOL;
答案 3 :(得分:-1)
你走了:
object(stdClass)#4 (2) {
["cryptoCurrency"]=>
string(3) "BTC"
["rateForCashCurrency"]=>
object(stdClass)#5 (2) {
["EUR"]=>
float(1033.839)
["USD"]=>
float(1103.106213)
}
}
- >
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<add key="Admin" value="123abc"/>
<add key="Test" value="imboss"/>
</appSettings>
</configuration>