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