You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过foreach循环从API返回的JSON中获取imdb_id并解决解码显示问题

问题分析与解决方案

嘿,我看了你的代码和API返回的JSON数据,问题出在对返回数据结构的误判上:

核心问题

你写的代码里试图遍历$decode1['external_ids'],但实际上API返回的JSON根本没有external_ids这个嵌套层级——所有外部ID字段(包括imdb_id)都是直接在顶层对象中的键值对,不是数组结构,所以foreach循环根本不会执行,自然拿不到imdb_id的值。

修正后的代码

直接从解码后的数组中读取imdb_id即可,不需要foreach循环:

$themoviedburl = "http://api.themoviedb.org/3/tv/60625/external_ids?api_key=你的API密钥";
// 建议加上错误处理,避免请求失败导致后续报错
$get = file_get_contents($themoviedburl);
if ($get === false) {
    die("API请求失败");
}
$decode1 = json_decode($get, TRUE);
// 检查解码是否成功,以及imdb_id是否存在
if (is_array($decode1) && isset($decode1['imdb_id'])) {
    $imdb = $decode1['imdb_id'];
    echo $imdb; // 输出 tt2861424
} else {
    echo "未获取到有效的imdb_id";
}

补充说明

如果你的API后续返回结构有变化(比如真的出现external_ids数组),再考虑用foreach遍历,但根据你提供的当前返回数据,直接取值是最直接的解决方案。同时加上错误处理能让代码更健壮,避免因为API请求失败或数据结构异常导致的白屏问题。

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

火山引擎 最新活动