我有一个问题,必须使用Flight::json
创建JSON。我有一个称为$data
的数组,其中包含一些元素,例如
$data[] = array('id'=>$temp,'type'=>'remote','url'=>$path);
其中$ id和$路径具有这样的不同值:
[id] => http://desktop-pqb3a65:8080/marmotta/resource/22086372-476f-4974-b538-64019ab678b3
[url] => D:SoftwareMarmottamarmotta-homeresources1d4dea1d4dea13-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();
});
如果您想要UneScaped Slashes,我相信您可以将其作为名为$option
的第五函数参数,请参阅源。
public function _json(
$data,
$code = 200,
$encode = true,
$charset = 'utf-8',
$option = 0
)