使用PHP解析亚马逊PAAPI5返回JSON 如何获取DisplayValues字段
DisplayValues是数组类型字段,无法直接通过echo输出,你可以参考以下两种实现方式修改你的循环内代码:
方式1:直接拼接所有特性输出
适合需要将所有特性合并为单段文本的场景:
for ($i = 0; $i <= $productosMaximosFuncion; $i++) { // 先输出原有Locale字段 echo $someArray['SearchResult']['Items'][$i]['ItemInfo']['Features']['Locale']; echo '<br>'; // 判断DisplayValues存在再访问,避免报错 if (isset($someArray['SearchResult']['Items'][$i]['ItemInfo']['Features']['DisplayValues'])) { // 用换行符拼接所有特性内容 echo implode('<br>', $someArray['SearchResult']['Items'][$i]['ItemInfo']['Features']['DisplayValues']); } echo '<hr>'; }
方式2:遍历单个特性做自定义处理
适合需要单独控制每个特性展示样式的场景:
for ($i = 0; $i <= $productosMaximosFuncion; $i++) { echo $someArray['SearchResult']['Items'][$i]['ItemInfo']['Features']['Locale']; echo '<br>'; if (isset($someArray['SearchResult']['Items'][$i]['ItemInfo']['Features']['DisplayValues'])) { echo '<ul>'; foreach ($someArray['SearchResult']['Items'][$i]['ItemInfo']['Features']['DisplayValues'] as $item) { // htmlspecialchars用于转义特殊字符,避免页面渲染异常 echo '<li>' . htmlspecialchars($item) . '</li>'; } echo '</ul>'; } echo '<hr>'; }
注意事项
- 必须加
isset判断,PAAPI返回的商品数据可能因商品属性缺失没有Features或DisplayValues字段,直接访问会抛出PHP警告 - 数组类型字段不能直接用echo输出,否则会触发
Array to string conversion报错
内容的提问来源于stack exchange,提问作者Kokojambo
相关产品推荐
相关产品推荐

