PHP 利用json_decode解析json为null问题解决 2021-05-09 PHP 暂无评论 2489 次阅读 今天遇到json解析问题,PHP利用json_decode解析json为null问题如何解决,在此汇总一下。 1.json字符串中反斜杠被转 ``` { "key":"value\/M00\/00\/0D\/rBAK31" } ``` 反斜杠被转义,需要用htmlspecialchars_decode()函数处理一下$content ,然后再json_decode()即可。 ``` $content = htmlspecialchars_decode($content); ``` 或者,在保存json数据时使用urlencode()函数: ``` $content = urlencode(json_encode($content)); ``` 解析时使用urldecode()函数: ``` $content = urldecode($content); ``` 即可避免反斜杠转义造成的无法解析。 2.json数据不合法问题 示例json: ``` {q:"风语",p:false,s:["风语者","风语战士"]} ``` 虽然在工具里可以正常格式化,但是需要补充完善如下: ``` {"q":"风语","p":false,"s":["风语者","风语战士"]} ``` json_last_error()比较常见的是整数4, 是json字符串在json_decode之前已不完整,所以语法错误。 ![json_error.png](https://blog.moper.net/usr/uploads/2021/05/648234496.png) 另,其它的json_decode($str)返回NULL的一些原因: 1). $str只能UTF-8编码 2). 元素最后不能有逗号(与php的array不同) 3). 元素不能使用单引号 4). 元素值中间不能有空格和n,必须替换。 转自https://blog.csdn.net/q0126a/article/details/84903294 标签: json 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。