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

使用PHP解析Amazon PA-API 5返回JSON获取DisplayValues的问题

解决方案

你当前读取Locale字段的逻辑是正确的,DisplayValues是Features节点下的数组类型字段,不能直接用echo输出整个数组,需要遍历数组获取每一条值,或者按索引读取指定位置的内容。修改后的代码如下:

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

$productosMaximos = count($someArray['SearchResult']['Items']);
// 最多取前8个商品,和原有逻辑效果一致
$productosMaximosFuncion = min($productosMaximos - 1, 7);

for ($i = 0; $i <= $productosMaximosFuncion; $i++) {
    $currentItem = $someArray['SearchResult']['Items'][$i];
    
    // 输出DisplayValues内容
    if (isset($currentItem['ItemInfo']['Features']['DisplayValues'])) {
        $displayValues = $currentItem['ItemInfo']['Features']['DisplayValues'];
        echo "商品ASIN:" . $currentItem['ASIN'] . " 特性列表:<br>";
        // 遍历数组输出每一条特性
        foreach ($displayValues as $idx => $val) {
            echo ($idx + 1) . ". " . $val . "<br>";
        }
        echo "<hr>";
    }

    // 原有读取Locale的逻辑可保留,新增判存避免报错
    if (isset($currentItem['ItemInfo']['Features']['Locale'])) {
        echo "Locale值:" . $currentItem['ItemInfo']['Features']['Locale'] . "<br>";
    }
}

注意事项

  • 代码新增了isset判断,避免部分商品未返回Features字段时抛出PHP警告
  • 如果不需要逐条处理DisplayValues的内容,也可以用implode直接拼接成字符串输出,示例:echo implode('<br>', $displayValues)
  • 原有计算最大遍历数的逻辑可以简化为min($productosMaximos - 1, 7),和你原有的if判断效果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:39:04