PHP如何从ActiveCampaign API返回的JSON响应中提取contact下的id值
问题根源
你之前的操作逻辑完全相反:json_encode()的作用是将PHP数组/对象转换为JSON字符串,而ActiveCampaign API返回的本身就是JSON格式的字符串,你需要先使用json_decode()将其解析为PHP可操作的对象或关联数组,才能提取对应字段。
正确提取步骤
方式1:解析为PHP对象取值
// 你调用API拿到的原始JSON响应字符串 $apiResponse = 'API返回的完整JSON内容'; // 解码为PHP对象(json_decode第二参数不传默认false,返回对象) $decodedObj = json_decode($apiResponse); // 校验解码结果后取值 if (json_last_error() === JSON_ERROR_NONE && isset($decodedObj->contact->id)) { $contactId = $decodedObj->contact->id; // 输出结果为 113 }
方式2:解析为PHP关联数组取值
// 你调用API拿到的原始JSON响应字符串 $apiResponse = 'API返回的完整JSON内容'; // 第二参数传true,解码为关联数组 $decodedArr = json_decode($apiResponse, true); // 校验解码结果后取值 if (json_last_error() === JSON_ERROR_NONE && isset($decodedArr['contact']['id'])) { $contactId = $decodedArr['contact']['id']; // 输出结果为 113 }
注意事项
- 取值前加
isset()判断可以避免API返回结构异常时抛出PHP报错 - 用
json_last_error()校验解码状态,可以快速定位JSON格式错误、编码异常等问题
内容的提问来源于stack exchange,提问作者Rana
相关产品推荐
相关产品推荐

