尝试解码来自 CURL 请求的 json 响应时出错

Error while trying to decode a json response from CURL request

我正在尝试解码看起来像这样的 json 响应并仅获取 USD

的值
{"data":{"currency":"TRX","rates":{"AED":"0.22938983227","USD":"0.06245299"}}}
    $url = "https://api.coinbase.com/v2/exchange-rates?currency=TRX";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // On dev server only!

$result = curl_exec($ch);
$json = json_decode($result, true);

echo $json['USD'];

但我不断收到此错误消息 - 注意:C:\xampp\htdocs*****.php 中的未定义索引:USD 19

我认为你期望数组的样子和它实际看起来的样子是不同的。 $json['USD'] 不存在,但 $json['data']['rates']['USD'] 存在。

可以在数组上使用print_r查看:

echo "<pre>"; print_r($json); echo "</pre>";

或者您也可以使用像 http://www.bodurov.com/JsonFormatter/ 这样的 json 格式化程序,我个人一直在使用它。

您可以替换:

$json = json_decode($result, true);

至:

$json = json_decode($result);

并像这样以面向对象的模式打印数据:

echo $json->data->currency . ' > '. $json->data->rates->USD;

希望对您有所帮助