🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 数据输出 `ExpressPHP` 的数据都是由控制器的方法返回的,控制器返回的数据都是采用 `Response` 类统一输出的。 >[info] 直接返回数组,数组会自动转换为 json 输出。 ~~~ namespace app\controller; class Index { public function index() { $data = ['uid' => 100, 'userName' => '小花']; return ['errCode' => 0, 'errMsg' => 'ok', 'data' => $data]; } } ~~~ 最终可以在浏览器中看到输出结果如下: ~~~ {"errCode":0,"errMsg":"ok","data":{"uid":100,"userName":"小花"}} ~~~ >[info] 默认数组是转换为 json,也可修改为其他类型,比如 jsonp、xml。 修改 `config.response.array_default_convert` 配置项为如下: ~~~ 'array_default_convert' => 'xml', ~~~ >[info] 指定为 json 类型返回。 ~~~ namespace app\controller; use sys\response\Json; class Index { public function index() { $data = ['uid' => 100, 'userName' => '小花']; // 指定为json类型 return Json::create(['errCode' => 0, 'errMsg' => 'ok', 'data' => $data]); } } ~~~ 最终可以在浏览器中看到输出结果如下: ~~~ {"errCode":0,"errMsg":"ok","data":{"uid":100,"userName":"小花"}} ~~~ >[success] Json类输出的数据不会转义中文、反斜杠,能更好的支持iOS,同时节约流量。 ## null转空字符串 开发 `API` 时,因为 `iOS` 解析含有 `null` 的 `json` 时会报致命错误,`ExpressPHP` 的 `Json` 类与 `Pdo` 类都可以对null转空字符串,默认是不开启的,需用户手动开启。 >[info] A. [Json输出] 修改 config.json.null_to_string 配置项如下: ~~~ // 将 NULL 转换成空字符串 'null_to_string' => true, ~~~ 修改后,`Json` 类输出的数据会将 `null` 转为空字符串 >[info] B. [数据库返回] 在 pdo.attribute 配置项增加如下: ~~~ \PDO::ATTR_ORACLE_NULLS => \PDO::NULL_EMPTY_STRING ~~~ 修改后,数据库 `Pdo` 类返回的结果集会将 `null` 转为空字符串 >[success] 推荐使用修改 pdo.attribute 的方式,PDO原生支持,性能更好。