You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP集成BatchData API:筛选结果(邮箱/手机号)无法单独显示问题

BatchData Property Skip Trace API 字段筛选问题解决方法

既然API能返回完整结果,问题肯定出在PHP对返回数据的解析和层级遍历上,按以下步骤排查解决:

1. 先明确API返回的数据结构

先把API返回的原始响应打印出来,确认邮箱、手机号所在的层级:

// 假设$api_response是API返回的原始字符串
var_dump(json_decode($api_response, true));

通过打印结果,找到email_addresses(或类似字段)和phone_numbers(或类似字段)的具体位置,比如是否在data->people数组下的子对象中。

2. 针对性编写筛选代码

根据实际的结构,编写遍历代码。举个通用示例(适配多数BatchData返回结构):

// 把API响应转成关联数组(如果要操作对象,去掉第二个true参数,用->访问)
$responseData = json_decode($api_response, true);

// 遍历获取手机号和邮箱
if (!empty($responseData['data']['people'])) {
    foreach ($responseData['data']['people'] as $person) {
        // 提取手机号
        if (!empty($person['phone_numbers'])) {
            foreach ($person['phone_numbers'] as $phone) {
                echo "手机号:" . $phone['number'] . PHP_EOL;
            }
        }
        // 提取邮箱
        if (!empty($person['email_addresses'])) {
            foreach ($person['email_addresses'] as $email) {
                echo "邮箱:" . $email['address'] . PHP_EOL;
            }
        }
    }
}

3. 常见错误排查

  • JSON解码方式错误:如果没加json_decode的第二个参数true,得到的是对象,必须用->访问字段(比如$responseData->data->people),而非数组下标。
  • 字段名拼写错误:严格匹配API返回的字段名,比如不要把email_addresses写成emails,大小写也要一致。
  • 忽略嵌套层级:不要直接尝试访问顶级字段,必须逐层进入嵌套结构,比如邮箱大概率在人员对象的子数组里,而非响应根节点。

如果你的API返回结构和示例不同,把打印出的完整数据结构贴出来,就能给出更精准的代码。

内容的提问来源于stack exchange,提问作者user3641834

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 15:32:03