php函数json_encode

2019-04-25  本文已影响0人  乔四儿丶

遇到的问题

列表接口返回的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());
}

以便更好地定位错误.

上一篇下一篇

猜你喜欢

热点阅读