处理返回数据的时候进行json编码/解码可能会因为不是标准的json字符导致出现一系列的连锁反应问题,没有正确的拦截错误信息的显示。
TP5获取器getAttr中进行json处理,结果出现不可预料的false值,且抛出异常 。很蛋疼啊,明明相应的处理判断,但是错误定位行却是json_encode进行json编码的操作。
后面替换掉以前使用的默认全局函数进行自定义json字符输出,解决。
创建自定义Json类
继承
<?php
/**
* Created by PhpStorm.
* User: panc
* Date: 2018/5/8
* Time: 上午11:24
*
* 自定义处理json的数据【避免json_encode报错:Syntax error 以及各种杂七杂八的问题】
*/
namespace app\common\output;//自定义命名空间
class json extends \think\response\Json
{
// protected function output($data) //可以自定义重写数据输出即可
}
调用Response类输出
控制器中调用执行
// return json($result);
return new \app\common\output\Json($result);
关键操作如上,虽然只是继承没有任何重写,但是实际上是解决了大问题。可以跟好的控制输出的结果和抛错。
peace~