JSON 解码失败,Web 服务返回空响应
在 Web 服务应用程序中使用 json_encode 和 json_decode 处理 JSON 数据时出现特殊问题。 Web 服务以以下格式返回 JSON:
var_dump($foo): string(62) "{"action":"set","user":"123123123123","status":"OK"}"
尝试使用以下代码在客户端应用程序中解码 JSON:
$data = json_decode($foo, true)
结果令人惊讶地为 null:
var_dump($data): NULL
此问题背后的一个潜在原因在于服务器上的 PHP 魔术引号配置。在 5.4 之前的 PHP 版本中,魔术引号会自动转义表单提交中的某些字符,包括 JSON 输入。要解决此问题,请使用以下代码禁用魔术引号:
if(get_magic_quotes_gpc()){ $param = stripslashes($_POST['param']); }else{ $param = $_POST['param']; } $param = json_decode($param,true);
这应该可以解决问题并允许 json_decode 按预期返回预期的 JSON 对象。
以上是尽管来自我的 Web 服务的 JSON 响应看似有效,但为什么我的 JSON 解码返回 NULL?的详细内容。更多信息请关注PHP中文网其他相关文章!