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);```