php中json_decode解析返回结果为null解决办法
今天在做授权登录时保存返回的数据时使⽤ json_encode 函数保存数据,但是当使⽤json_decode 函数解析时,返回 null。接着baidu。了⼀部分资料。
原因是:
json_decode要求的字符串⽐较严格:
1. 使⽤UTF-8编码
2. 不能在最后元素有逗号
3. 不能使⽤单引号
4. 不能有\r,\t,如果有请替换
使⽤
echo json_last_error(); // 返回4 表⽰语法错误
解决办法 ⼀:
phpjson格式化输出出现这个问题是因为在 json 字符串中反斜杠被转义,只需要⽤ htmlspecialchars_decode() 函数处理⼀下 $content 即可:$content = htmlspecialchars_decode($content);
解决办法⼆:
在保存 json 数据时使⽤ urlencode() 函数:
$content = urlencode(json_encode($content));
解析时使⽤ urldecode() 函数:
$content = urldecode($content);
即可避免反斜杠转义造成的⽆法解析。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论