为什么 Json_encode 添加反斜杠?
在文件上传脚本中使用 json_encode 时,发现生成的 JSON 数据包含意外的内容反斜杠。这就提出了为什么 json_encode 引入这些转义的问题。
JSON_UNESCAPED_SLASHES 选项
答案在于 json_encode 中可用的特定选项。默认情况下,json_encode 会转义某些字符,包括斜杠(反斜杠),以确保生成的 JSON 保持有效。然而,在某些情况下,例如在处理像所提供的 URL 时,这些转义可能是不可取的。
为了解决这个问题,PHP 5.4 版本中引入了 JSON_UNESCAPED_SLASHES 选项。使用时,此选项指示 json_encode 避免转义斜杠,从而有效解决手头的问题。
代码修改
要实现该解决方案,只需将 JSON_UNESCAPED_SLASHES 常量合并为json_encode 函数中的第二个参数。修改后的代码应如下所示:
echo json_encode($result, JSON_UNESCAPED_SLASHES); // <-- Adds the JSON_UNESCAPED_SLASHES option
这可确保生成的 JSON 不包含任何不必要的反斜杠,从而提供所需的结果:
{ "logo_url": "http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg", "img_id": "54", "feedback": { "message": "File uploaded", "success": true } }
以上是为什么'json_encode”向我的 JSON 数据添加反斜杠?的详细内容。更多信息请关注PHP中文网其他相关文章!