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

使用PHP解析Visa Developer API响应JSON输出时出现问题该如何解决

问题修复方案

临时快速修复

如果暂时无法调整请求配置,可直接通过字符串定位截取有效JSON内容,代码如下:

// 定位有效JSON的起始偏移量
$jsonStartPos = strpos($response, '{"ReturnedResults"');
if ($jsonStartPos !== false) {
    // 截取得到纯JSON内容
    $validJson = substr($response, $jsonStartPos);
    $parseResult = json_decode($validJson, true);
    // 校验解析结果
    if (json_last_error() === JSON_ERROR_NONE) {
        $offerList = $parseResult['ReturnedResults'] ?? [];
        // 此处可遍历$offerList组装前端所需的优惠列表结构
    }
}

该方案仅作为临时兜底,不建议长期使用。

根因解决最优方案

返回内容夹杂冗余信息,90%以上是CURL配置错误导致,调整CURL配置可从根源避免该问题,无需额外做字符串截取,完整请求示例如下:

// 初始化CURL
$curl = curl_init();
// 替换为实际的Offers Data API请求地址
curl_setopt($curl, CURLOPT_URL, "https://your-vdp-api-endpoint/path");
// 核心配置1:要求CURL直接返回响应体,而非直接输出内容+返回布尔值
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// 核心配置2:不返回HTTP响应头,避免头信息混入响应体
curl_setopt($curl, CURLOPT_HEADER, false);
// 按需配置请求方式,以下为POST请求配置,GET请求可删除
curl_setopt($curl, CURLOPT_POST, true);
// 替换为实际请求参数,JSON格式请求直接传序列化后的字符串即可
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
    "param1" => "value1",
    "param2" => "value2"
]));
// 配置请求头,替换为VDP要求的认证信息、内容类型等
curl_setopt($curl, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json",
    "Authorization: Bearer your-access-token",
    // 如有其他VDP要求的头信息可在此补充
]);
// VDP接口为HTTPS协议,生产环境建议配置可信CA证书,调试阶段可临时关闭校验
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
// 如接口要求双向证书认证,需补充以下配置,替换为你的证书文件路径
// curl_setopt($curl, CURLOPT_SSLCERT, "/path/to/your/cert.pem");
// curl_setopt($curl, CURLOPT_SSLKEY, "/path/to/your/key.pem");

// 执行请求
$response = curl_exec($curl);
curl_close($curl);

// 此时可直接解析响应内容
$parseResult = json_decode($response, true);
if (json_last_error() === JSON_ERROR_NONE) {
    $offerList = $parseResult['ReturnedResults'] ?? [];
    // 遍历处理优惠信息输出到前端即可
}

配置调整后响应内容会仅返回接口返回的纯JSON数据,无需额外处理即可正常解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:06:04