首页 >后端开发 >php教程 >尽管 JSON 数据看起来有效,为什么'json_decode”返回 NULL?

尽管 JSON 数据看起来有效,为什么'json_decode”返回 NULL?

DDD
DDD原创
2024-12-12 22:19:11973浏览

Why Does `json_decode` Return NULL Despite Valid-Looking JSON Data?

了解 Web 服务调用中的 JSON 解码问题

在 Web 服务交互中,json_decode 函数偶尔会返回 NULL。当 Web 服务提供类似于以下内容的 JSON 数据时,会出现一个令人困惑的问题:

var_dump($foo):
string(62) "{"action":"set","user":"123123123123","status":"OK"}"

但是,尝试在应用程序中解码 JSON 将返回 NULL:

$data = json_decode($foo, true);
var_dump($data):
NULL

问题

此问题的一个潜在原因是 PHP 的魔术引号功能。魔术引号会自动转义表单数据中的特殊字符,这可能会干扰 JSON 解析。要解决此问题:

if (get_magic_quotes_gpc()) {
  $param = stripslashes($_POST['param']);
} else {
  $param = $_POST['param'];
}
$param = json_decode($param, true);

通过禁用魔术引号或从 JSON 数据中删除斜杠,应用程序可以准确解码 JSON 并检索所需的信息。

以上是尽管 JSON 数据看起来有效,为什么'json_decode”返回 NULL?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn