json_decode解析JSON为空NULL的原因
1:JSON字符串格式错误可以使用使用json_last_error()函数获取到的返回值来帮助我们判断出问题的原因。
如果为0正确 具体错误如下
0 = JSON_ERROR_NONE No error has occurred1 = JSON_ERROR_DEPTH The maximum stack depth has been exceeded2 = JSON_ERROR_STATE_MISMATCH Invalid or malformed JSON3 = JSON_ERROR_CTRL_CHAR Control character error, possibly incorrectly encoded4 = JSON_ERROR_SYNTAX Syntax error5 = JSON_ERROR_UTF8 Malformed UTF-8 characters, possibly incorrectly encoded PHP 5.3.3
2:编码问题默认JSON字符串是UTF-8格式 如果是其他格式可能出错$output = iconv('gbk', 'utf8', $output);
3:未知原因 可能是BOM问题这个蛮奇怪的 检查了PHP并没有BOM 但是解决方法按BOM最后解决了 json_decode(substr($str, 3), true);
或则这样
$result = trim($result, "\xEF\xBB\xBF");
print_r(json_decode($result, true));
最后一个原因补充:THINKPHP debug为true 关闭就可以了 原因未知 可能是开启会生成BOM。
页:
[1]