PHP JSON解码,带一个方括号

时间:2014-03-09 07:32:56

标签: php arrays json function

好的,所以我用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有这些。

如何绕过他们获取信息?

2 个答案:

答案 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'};

Demo

答案 1 :(得分:0)

您获得的回复实际上是array。第一个(也是您的唯一一个)元素是object。因此,要访问此object,您只需致电:

$array = json_decode($data);
$obj = $array[0];
$doge = print_r($obj->{'last_price'}."\n", true);