注意: 低版本php json错误码不全
json_last_error()错误msg对照表:
0 = JSON_ERROR_NONE //没有错误发生
1 = JSON_ERROR_DEPTH //到达了最大堆栈深度
2 = JSON_ERROR_STATE_MISMATCH //无效或异常的json
3 = JSON_ERROR_CTRL_CHAR //控制字符错误,可能是编码不对
4 = JSON_ERROR_SYNTAX //语法错误
5 = JSON_ERROR_UTF8 //异常的utf-8字符,也许是因为不正确的编码
json_last_error()函数测详细介绍请参见:php.golaravel.com/function.js…
我遇到的问题是使用json_decode()时,数据为空 打印json_last_error()结果显示为0
查阅了一些关于json_decode()的使用相关规范,如下: json_decode要求的字符串比较严格
- 使用UTF-8编码
- 不能在最后元素有逗号
- 不能使用单引号
- 不能有\r,\t,如果有请替换
最后发现是数据返回格式的问题
$json = str_replace('["', '{"', $post_result);
$jsonData = str_replace(']]', ']}', $json);