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

MapBox方向API请求后,无法解析JSON数组获取路由时长问题

问题分析与解决方案

错误原因

curl_exec返回的是JSON格式的字符串,而非PHP关联数组。直接用数组键访问字符串时,PHP会将字符串当作字符数组处理,非整数的键会被转换为0,因此$response['routes']实际取的是字符串的第一个字符“{”,导致输出不符合预期。

修复步骤

  • 完成CURL请求后关闭资源,并检查请求是否存在错误;
  • 使用json_decode()将JSON字符串解码为PHP关联数组(第二个参数传true);
  • 检查JSON解码是否成功,避免因响应格式异常导致后续出错;
  • 从解码后的数组中提取目标数据。

修复后的代码

$response = curl_exec($curl);

// 检查CURL请求是否出错
if (curl_errno($curl)) {
    die('CURL请求错误: ' . curl_error($curl));
}
// 关闭CURL资源
curl_close($curl);

// 将JSON字符串解码为关联数组
$data = json_decode($response, true);

// 检查JSON解码是否成功
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解码错误: ' . json_last_error_msg());
}

// 提取duration值
$Duration = $data['routes'][0]['duration'];
echo $Duration; // 输出:9875.611

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:52:09