
本文介绍如何在 php 中解析 json 字符串、遍历数组并安全修改指定键(如 "image")的值,为其添加固定前缀和后缀,最后重新编码为格式化且无转义斜杠的 json。
在实际 Web 开发中,经常需要对原始 JSON 数据进行结构化改造——例如将纯文件 ID(如 "12001116")转换为可直接访问的资源路径(如 "wp-content/upload/12001116.jpg")。PHP 提供了简洁高效的原生函数组合来完成这一任务:json_decode() 解析、array_map() 遍历处理、json_encode() 重新序列化。
以下是完整、健壮的实现方案:
Image) && is_string($item->Image)) {
$item->Image = 'wp-content/upload/' . $item->Image . '.jpg';
}
return $item;
}, $jsonArray);
// 步骤 3:重新编码为 JSON,启用美化输出 + 不转义斜杠(避免出现 \/)
$output = json_encode($processed, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
echo $output;
?>✅ 关键要点说明:
- JSON_UNESCAPED_SLASHES 标志确保输出中的 / 不被转义为 \/,符合 URL 路径语义;
- JSON_PRETTY_PRINT 提升可读性(生产环境可移除以减小体积);
- 添加 json_last_error() 检查,增强容错能力;
- 显式判断 isset($item->Image) 和 is_string(),防止空值或非字符串类型引发拼接错误;
- 若需操作关联数组(而非对象),调用 json_decode($input, true),后续改用 $item['Image'] 访问。
该方法时间复杂度为 O(n),适用于数千条记录的批量处理,无需手动 foreach 循环,代码简洁且语义清晰。
立即学习“PHP免费学习笔记(深入)”;











