Создать Json, используя Flight Stack Overflow

У меня есть проблема, где я должен создать JSON с помощью 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();
});

1

Решение

Если вам нужны косые черты без экранирования, я думаю, вы можете передать это в качестве 5-го параметра функции с именем $option, увидеть источник.

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]