json_encode并不是每次都成功的,json_encode的错误代码如下
JSON_ERROR_NONE 0 没有错误发生
JSON_ERROR_DEPTH 1 到达了最大堆栈深度
JSON_ERROR_STATE_MISMATCH 2 无效或异常的 JSON
JSON_ERROR_CTRL_CHAR 3 控制字符错误,可能是编码不对
JSON_ERROR_SYNTAX 4 语法错误
JSON_ERROR_UTF8 5 异常的UTF-8字符,编码错误PHP 5.3.3
JSON_ERROR_RECURSION 6 PHP 5.5.0
JSON_ERROR_INF_OR_NAN 7 PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE 8 指定的类型,值无法编码。 PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME 9 指定的属性名无法编码。 PHP 7.0.0
JSON_ERROR_UTF16 10 畸形UTF-16字符,编码错误 PHP 7.0.0
查看json_encode的错误代码
var_dump(json_last_error());
我的错误是5 UTF8编码错误 处理起来很简单 代码如下
$data = iconv('UTF-8', 'UTF-8//IGNORE', utf8_encode($data));
$json = json_decode($data);```