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

PHP+Curl新手求助:如何从JSON结果中获取单个字段

解决你的PHP Curl + JSON解析问题

嘿,我来帮你搞定这个问题!刚看了你的代码,核心问题出在Curl的默认行为上——Curl默认会直接把API的响应内容输出到页面,而不是把内容存到$resp变量里,这就导致json_decode拿到的是空值,自然没法提取legend_id啦。

我帮你调整了代码,加上关键的Curl配置和错误检查,这样就能正常工作了:

// 初始化Curl请求
$curl = curl_init("https://api.brawlhalla.com/legend/3/?api_key=KEY");

// 关键设置:让Curl返回响应内容,而非直接输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

// 执行请求并获取响应
$resp = curl_exec($curl);

// 检查Curl请求是否成功
if($resp === false) {
    echo "Curl请求出错:" . curl_error($curl);
} else {
    // 解析JSON为对象(如果需要转成数组,可加第二个参数true)
    $jsonObj = json_decode($resp);
    
    // 检查JSON解析是否成功
    if($jsonObj === null) {
        echo "JSON解析出错:" . json_last_error_msg();
    } else {
        // 现在可以正常提取元素了
        echo $jsonObj->legend_id; // 会输出3
    }
}

// 关闭Curl资源
curl_close($curl);

改动说明:

  • 新增curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);:这是解决问题的核心,告诉Curl把响应内容返回给变量,而不是直接打印到页面。
  • 增加错误检查:分别排查Curl请求失败、JSON解析出错的情况,方便你后续排查其他问题。
  • 你原来的$jsonObj->legend_id写法是对的,因为返回的JSON结构确实是对象形式,这部分不用改。

替换成这段代码后,应该就能成功输出3了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:58:02