如何仅保存JSON中的ID与标题字段到文件?PHP技术咨询
提取JSON中的指定字段保存到文件
嗨,这事儿好办!你现在的代码是直接把API返回的完整JSON存到文件里,要只保留ID和标题的话,只需要先把JSON解析成PHP数组,提取你需要的字段,再重新编码成JSON写入文件就行。
下面是修改后的代码,我给你加了注释说明关键步骤:
<?php // 1. 从API获取JSON数据 $jsonData = file_get_contents('https://ghibliapi.herokuapp.com/films'); // 检查是否成功获取数据 if ($jsonData === false) { die("无法获取API数据!"); } // 2. 把JSON解码为PHP关联数组 $films = json_decode($jsonData, true); // 检查解码是否成功 if ($films === null) { die("JSON解码失败!"); } // 3. 遍历数组,只提取需要的id和title字段 $filteredFilms = []; foreach ($films as $film) { // 确保每个条目都有id和title字段(可选的安全检查) if (isset($film['id'], $film['title'])) { $filteredFilms[] = [ 'id' => $film['id'], 'title' => $film['title'] ]; } } // 4. 把过滤后的数组重新编码为JSON,用PRETTY_PRINT让格式更易读 $filteredJson = json_encode($filteredFilms, JSON_PRETTY_PRINT); // 5. 写入文件 $myfile = fopen("yes.json", "w") or die("无法打开文件!"); fwrite($myfile, $filteredJson); fclose($myfile); echo "文件已成功保存,仅包含ID和标题字段!"; ?>
关键说明:
json_decode($jsonData, true):把JSON字符串转成PHP的关联数组,方便我们操作里面的字段- 遍历数组时做了
isset检查:避免API返回的条目里缺少字段导致报错,让代码更健壮 JSON_PRETTY_PRINT:生成的JSON会有缩进,看起来更整洁,如果你不需要可以去掉这个参数
这样运行后,yes.json里就只会有每个电影的ID和标题啦!
内容的提问来源于stack exchange,提问作者Mhmd Admn
相关产品推荐
相关产品推荐

