调用LCX交易所行情接口如何正确获取ADA/ETH的bestAsk和bestBid数据?
解决方案
错误原因分析
- 接口返回数据的层级判断错误:
bestAsk、bestBid字段并不在接口返回的根层级,而是存放在data数组下对应单个交易对的子数组中 - 未做交易对筛选:
data是所有交易对的集合,需要先匹配到ADA/ETH对应的条目才能提取目标字段 - 类型输出错误:
$data是数组类型,直接使用echo输出会触发PHP报错
正确实现代码
<?php $url = "https://exchange-api.lcx.com/market/tickers"; $response = file_get_contents($url); $json = json_decode($response, true); // 遍历所有交易对匹配ADA/ETH $targetPair = 'ADA/ETH'; $adaEthData = null; foreach ($json['data'] as $item) { if ($item['pair'] === $targetPair) { $adaEthData = $item; break; } } if ($adaEthData) { $bestAsk = $adaEthData['bestAsk']; $bestBid = $adaEthData['bestBid']; echo "ADA/ETH bestAsk: " . $bestAsk . PHP_EOL; echo "ADA/ETH bestBid: " . $bestBid . PHP_EOL; } else { echo "未找到对应交易对数据"; } ?>
调试建议
如果后续遇到同类接口数据提取问题,可先通过var_dump($json)打印完整返回结构,确认目标字段的存储层级后再做提取,避免层级判断错误。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

