主页 > 编程资料 > PHP >
发布时间:2016-08-04 作者:apizl 阅读:371次

原因一:

在看起来很正常的不过的json却解析NULL

{"msg":"ok","code":0,"data":[]}

再在线json格式化测试中是正常的 但是PHP又不能进行解析 这是为什么。

可以使用trim过滤调用json中返回的bom头

var_dump(json_decode(trim($json,chr(239).chr(187).chr(191))),true);

这个时候如果可以正常解析就说明接口返回中在json字符串前有bom字符

我们就需要检查接口的文件的编码如果是utf-8 bom格式这个肯定是导致json解析失败原因。

然后我们重新测试一遍:

$json = file_get_contents('http://www.test.com/index.php');
var_dump(json_decode(trim($json,chr(239).chr(187).chr(191))),true);
var_dump(json_decode($json,true));

如上就是原因一 bom头

QQ截图20160804161713.png

原因二:

(1)使用UTF-8编码
(2)不能在最后元素有逗号
(3)不能使用单引号
(4)不能有\r,\t,如果有请替换

文章由爱资料原创本文地址:https://www.apizl.com/archives/view-132503-1.html,转载请以链接形式标明本文地址!
关键字词: