【发布时间】:2021-05-25 21:41:05
【问题描述】:
我有这段代码可以从返回以下原始数据的远程 API 获取数据
{"BTC":0.00002067,"USDT":1,"DOGE":21.53}
和/或跟随对象
stdClass Object ( [BTC] => 2.056E-5 [USDT] => 1 [DOGE] => 21.52
我正在使用此代码
$url = 'https://min-api.cryptocompare.com/data/price?fsym=USD&tsyms=BTC,USDT,DOGE';
$data = file_get_contents($url);
$priceInfo = json_decode($data);
foreach ($priceInfo as $val){
echo "<br>--> ".$val;
}
返回这个
--> 2.056E-5
--> 1
--> 21.52
但我会得到这个结果
--> BTC 0.00002067
--> USDT 1
--> DOGE 21.52
怎样才能达到这个结果?
【问题讨论】:
-
@RiggsFolly 的回答是正确的,但我建议使用
json_decode($data, true),它将 JSON 解码为关联数组,而不是对象。foreach循环会更有意义,同时允许与 PHP 的任何数组函数一起使用。 -
@kfriend 没必要,因为一个对象也可以像数组一样使用 foreach 来循环其属性,因为这是一个仅属性对象,它相当学术
-
@RiggsFolly,从技术上讲,
foreach在此示例中有效,这是正确的,但这不是我的意思。我的观点是,将其转换为关联数组可能对 OP 更有用。显然,这可能会根据使用数据的最终上下文而改变。在野外,以这种方式使用对象并不典型,因此,关联数组是更好的方法。