PHP解析JSON数据:获取指定ID账户的availableBalance
PHP提取Mercury API指定账户可用余额的解决方法
先处理JSON解析
把API返回的JSON字符串转成PHP关联数组(比对象操作更直观):
// $apiResponse 是你从Mercury API获取到的原始JSON响应内容 $accountData = json_decode($apiResponse, true);
遍历匹配目标账户
循环账户列表,找到指定ID的账户后提取availableBalance:
$targetAccountId = '7bf48dba-ef2a-11ed-b8b4-efdca6c6aba7'; $availableBalance = null; // 先判断accounts数组是否存在,避免触发报错 if (isset($accountData['accounts']) && is_array($accountData['accounts'])) { foreach ($accountData['accounts'] as $account) { // 严格匹配账户ID if ($account['id'] === $targetAccountId) { $availableBalance = $account['availableBalance']; break; // 找到目标后立即退出循环,提升效率 } } } // 输出结果 if ($availableBalance !== null) { echo "目标账户可用余额:{$availableBalance}"; } else { echo "未找到ID为{$targetAccountId}的账户"; }
兼容对象解析的写法
如果之前是用对象方式解析(未给json_decode传第二个参数),代码调整为:
$accountData = json_decode($apiResponse); $targetAccountId = '7bf48dba-ef2a-11ed-b8b4-efdca6c6aba7'; $availableBalance = null; if (isset($accountData->accounts) && is_array($accountData->accounts)) { foreach ($accountData->accounts as $account) { if ($account->id === $targetAccountId) { $availableBalance = $account->availableBalance; break; } } }
常见排查点
- 用
var_dump($accountData)打印解析后的数据,确认账户列表的键名是否为accounts(部分API可能用data或items) - 检查目标ID的字符是否完全一致,包括连字符、大小写,ID是字符串必须严格匹配
- 确认API返回的JSON格式无语法错误,可通过在线JSON校验工具验证
内容的提问来源于stack exchange,提问作者Noah Parker
相关产品推荐
相关产品推荐

