首页 > 后端开发 > php教程 > 尽管来自我的 Web 服务的 JSON 响应看似有效,但为什么我的 JSON 解码返回 NULL?

尽管来自我的 Web 服务的 JSON 响应看似有效,但为什么我的 JSON 解码返回 NULL?

Susan Sarandon
发布: 2024-12-04 05:08:14
原创
809 人浏览过

Why is my JSON Decode Returning NULL Despite a Seemingly Valid JSON Response from my Web Service?

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

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