Web 服务调用后 JSON 解码返回 Null
此线程探讨了解码 Web 服务调用的 JSON 响应时遇到的特殊行为。该问题的出现是由于 json_decode 函数返回 NULL,尽管 Web 服务返回 JSON 数据。
要解决此问题,找出根本原因非常重要。在给定的场景中,问题的关键在于魔术引号,这是一个已弃用的 PHP 配置。魔术引号会自动转义某些字符并更改其在全局变量中的含义,例如 $_GET、$_POST、$_COOKIE 等。
启用魔术引号时,它们会通过破坏从接收到的 JSON 数据来干扰解码过程。网络服务。这会导致 json_decode 失败并返回 NULL。
解决方案:
要解决此问题,必须专门禁用 $_POST 变量的魔术引号。这可以通过以下代码来实现:
if (get_magic_quotes_gpc()) { $param = stripslashes($_POST['param']); } else { $param = $_POST['param']; } $param = json_decode($param, true);
通过禁用魔术引号,JSON 数据保持不变,并且可以使用 json_decode 成功解码。
以上是为什么'json_decode”在 Web 服务调用后返回 NULL?的详细内容。更多信息请关注PHP中文网其他相关文章!