使用Curl解码和回显RESTful API响应

时间:2017-09-23 18:17:29

标签: php json curl restful-url

我试图简单地从" Last"中获取并显示数据。来自此API:  https://bittrex.com/api/v1.1/public/getticker?market=usdt-btc

到目前为止,这是我所拥有的,但它没有返回任何东西。我不是一个经验丰富的开发人员,并从几个不同的来源拼凑这个代码。非常感谢任何帮助。

<?php

$service_url = 'https://bittrex.com/api/v1.1/public/getticker?market=usdt-btc';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
$decoded = json_decode($curl_response);

echo $decoded->Last;

?>

2 个答案:

答案 0 :(得分:1)

您的代码有效。但是你必须更正确地检查JSON响应。如果你想获得“最后”,你首先必须得到结果。

这是来自您代码的JSON解码响应:

object(stdClass)#1 (3) {
  ["success"]=>
  bool(true)
  ["message"]=>
  string(0) ""
  ["result"]=>
  object(stdClass)#2 (3) {
    ["Bid"]=>
    float(3760)
    ["Ask"]=>
    float(3765)
    ["Last"]=>
    float(3765)
  }
}

所以,你必须回应“$ decoding-&gt; result-&gt; Last”

答案 1 :(得分:0)

$decoded返回标准对象,因此您无法使用echo直接打印。如果您打印已解码的变量,那么

<?php
$service_url = 'https://bittrex.com/api/v1.1/public/getticker?market=usdt-btc';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
$decoded = json_decode($curl_response);

echo "<pre>";
print_r($decoded);

 ?>

<强>结果:

 stdClass Object
(
    [success] => 1
    [message] => 
    [result] => stdClass Object
        (
            [Bid] => 3741.5957385
            [Ask] => 3745
            [Last] => 3745
        )

)

所以你可以访问

echo $decoded->success; //return 1
echo $decoded->result->Bid; //3741