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

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

DDD
发布: 2024-12-12 22:19:11
原创
897 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板