好的,所以我用php抓取市场数据并且它工作正常但是我遇到了一个api,它给了我这个
[{"market_id":"16","code":"DOGE","last_price":"0.00000136","yesterday_price":"0.00000140","exchange":"BTC","change":"-2.86","24hhigh":"0.00000150","24hlow":"0.00000132","24hvol":"6.544"}]
通常我会用这段代码抓住它
$data = curl_exec($c);
curl_close($c);
$obj = json_decode($data);
$doge = print_r($obj->{'last_price'}."\n", true);
但由于方括号"["
而无效。没有其他api有这些。
如何绕过他们获取信息?
答案 0 :(得分:2)
当您对象print_r
进行操作时,可以看到这样的结构。
Array
(
[0] => stdClass Object
(
[market_id] => 16
[code] => DOGE
[last_price] => 0.00000136
[yesterday_price] => 0.00000140
[exchange] => BTC
[change] => -2.86
[24hhigh] => 0.00000150
[24hlow] => 0.00000132
[24hvol] => 6.544
)
)
因此,要访问它,您可以看到last_price
位于数组索引0
下,因此您需要在对象之前提供index
。
echo $doge =$obj[0]->last_price;
(或)
echo $doge =$obj[0]->{'last_price'};
答案 1 :(得分:0)
您获得的回复实际上是array
。第一个(也是您的唯一一个)元素是object
。因此,要访问此object
,您只需致电:
$array = json_decode($data);
$obj = $array[0];
$doge = print_r($obj->{'last_price'}."\n", true);