php函数json_encode

遇到的问题

列表接口返回的http状态码为200,但response body 为空,且查看日志没有找到报错.
经过调试发现在类中的_getResponse方法中,在执行

$res = json_encode($value, $option);

时返回为false.
通过打印json_last_error(), 发现是因为传给json_encode()方法的数组中包含有无穷大或者分母为0的这种非法值.

解决办法

json_encode() 方法可以传入 JSON_PARTIAL_OUTPUT_ON_ERROR option 来将此类非法值强制转换成0

建议

_getResponse方法的最后加上

if (JSON_ERROR_NONE !== json_last_error()) {
        throw new \Exception(json_last_error_msg());
}

以便更好地定位错误.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容