json_decode解析jison返回NULL问题

今天同事遇到一个json_decode解析jison返回NULL问题,手动解析没有问题,但是通过curl访问api返回的json串无法正确解析,总是出现NULL。

最后发现是因为一个bom头,导致json_decode无法运行,得到的结果是NULL。

php5.2以后自带json_decode函数,但是对json文本串的格式要求非常严格。很可能使用该函数得到的返回值是NULL

可以使用使用json_last_error()函数获取到的返回值来帮助我们判断出问题的原因。

其中如果提示错误JSON_ERROR_SYNTAX(Syntax error),表示json串格式错误。

解决方案:

if(preg_match('/^\xEF\xBB\xBF/', $info)){  
    $info = substr($info,3);  
}  
$info = json_decode(trim($info), true);  

你可能感兴趣的:(json_decode解析jison返回NULL问题)