使用飞行PHP创建JSON



我有一个问题,必须使用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
    )

最新更新