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

求助:PHP循环提取JSON API指定字段时获取冗余内容

搞定PHP从JSON API提取特定字段的小技巧

嘿,我来帮你解决这个问题!你现在的问题是循环时拿到了一堆无关内容,核心就是没精准定位到目标字段,咱们一步步来调整:

第一步:把JSON转成好用的PHP关联数组

首先得把API返回的JSON字符串转成PHP能直接操作的关联数组,用json_decode()时记得加第二个参数true,这样通过键名取值会超方便:

// 获取API数据源
$jsonData = file_get_contents('https://uysmiami.com/search/api_server_custom.php');
// 转换为PHP关联数组
$vessels = json_decode($jsonData, true);

第二步:精准循环,只提取目标字段

别再遍历所有内容啦,直接指定你需要的字段键名就行。比如你要提取船名、价格、船长这类字段,代码可以这么写:

// 先判断是否获取到有效数据
if (!empty($vessels)) {
    foreach ($vessels as $vessel) {
        // 只输出你需要的目标字段,无关内容一概忽略
        echo "船名:" . $vessel['name'] . "<br>";
        echo "价格:" . $vessel['price'] . "<br>";
        echo "船长:" . $vessel['length'] . "<br><br>";
    }
} else {
    echo "没获取到任何船只数据哦";
}

小妙招:先搞清楚JSON的结构

要是你不确定目标字段的键名叫啥,直接把解析后的数组打印出来看看就行,用print_r($vessels)或者var_dump($vessels),这样所有字段的结构一目了然,再也不会拿错内容啦。

另外,记得加个错误处理,防止API请求失败或者JSON解析出错:

$jsonData = file_get_contents('https://uysmiami.com/search/api_server_custom.php');
// 判断是否成功获取API数据
if ($jsonData === false) {
    echo "哎呀,没法获取API数据呢";
    exit;
}
$vessels = json_decode($jsonData, true);
// 判断JSON解析是否成功
if (json_last_error() !== JSON_ERROR_NONE) {
    echo "JSON解析出错啦:" . json_last_error_msg();
    exit;
}

这样改完之后,循环就只会输出你想要的字段,不会带出那些无关内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:57:44