尝试解码来自 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;
希望对您有所帮助
我正在尝试解码看起来像这样的 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;
希望对您有所帮助