2016-06-24 2 views
1

У меня проблема, когда мне нужно создать JSON, используя Flight::json. У меня есть массив, называемый $data, который содержит некоторые элементы, такие какСоздать Json используя Flight php

$data[] = array('id'=>$temp,'type'=>'remote','url'=>$path); 

где $ ID и $ путь имеют различные значения, как это:

[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 для преобразования моего массива.

Спасибо всем за помощь!

EDIT

Я решить мою проблему создания функции, как это:

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(); 
    }); 

ответ

0

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

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