使用Flight php

时间:2016-06-24 16:25:04

标签: php json flightphp

我遇到问题,我必须使用Flight::json创建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();
  });

1 个答案:

答案 0 :(得分:0)

如果您想要未转义的斜杠,我相信您可以将其作为名为$option的第5个函数参数传递,请参阅source

public function _json(
        $data,
        $code = 200,
        $encode = true,
        $charset = 'utf-8',
        $option = 0
    )