我有一个问题,我必须使用Flight::json
. 我有一个名为 的数组,$data
其中包含一些元素,例如
$data[] = array('id'=>$temp,'type'=>'remote','url'=>$path);
其中 $id 和 $path 具有不同的值,如下所示:
[id] => http://desktop-pqb3a65:8080/marmotta/resource/22086372-476f-4974-b538-64019ab678b3
[url] => D:\Software\Marmotta\marmotta-home\resources\1d\4d\ea\1d4dea13-f8e6-4cf0-b96a-f88b08efda2b
当我尝试使用以下方法将其转换为 JSON 时:
Flight::json($data);
我的 PHP 页面改为返回这种格式:
{"id":"http:\/\/desktop-pqb3a65:8080\/marmotta\/resource\/22086372-476f-4974-b538-64019ab678b3","type":"remote","url":"D:\\Software\\Marmotta\\marmotta-home\\resources\\1d\\4d\\ea\\1d4dea13-f8e6-4cf0-b96a-f88b08efda2b"}
我阅读了文档并尝试使用另一个函数进行转换:
Flight::json($data, $code = 200, $encode = false, $charset = 'utf-8');
但它返回一个错误,如:
500 Internal Server Error
Array to string conversion (8)
那么你能帮我在$data
没有这种错误的情况下进行转换吗?我必须使用Flight
来转换我的数组。
谢谢大家的帮助!
编辑
我解决了创建这样一个函数的问题:
Flight::map('jsonc', function($obj, $status = 200) {
Flight::response()
->status($status)
->header('Content-Type', 'application/javascript')
->write(utf8_decode(json_encode($obj, JSON_UNESCAPED_SLASHES)))
->send();
});