访问JSON对象中的值,PHP中的数组对象

时间:2017-03-12 21:01:32

标签: php arrays json

查看以下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?

这是我的第一篇文章,我尝试找到类似的例子,但有很多但却无法找到解决这个问题的方法。问题,因为没有一个例子有关于此的任何线索。

4 个答案:

答案 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>