2016-06-24 6 views
1

Flight::jsonを使用してJSONを作成する必要があるという問題があります。 私は、フライトphpを使用してJsonを作成

の$ idと$パスが、このような異なる値を持つ
$data[] = array('id'=>$temp,'type'=>'remote','url'=>$path); 

のようないくつかの要素が含まれていること、$dataを配列と呼ばれている:

[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"} 

私はドキュメントを読んで、私は別の関数を使用して変換しようとした:だから私はこのタイプなし$dataを変換するのを助けることができる

500 Internal Server Error 
Array to string conversion (8) 

Flight::json($data, $code = 200, $encode = false, $charset = 'utf-8'); 

が、それはのようなエラーを返しますエラー?私は配列を変換するために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

あなたがエスケープされていないスラッシュが必要な場合、私はあなたがsourceを参照してください、$optionという名前の第五関数のパラメータとしてそれを渡すことができると信じて。

public function _json(
     $data, 
     $code = 200, 
     $encode = true, 
     $charset = 'utf-8', 
     $option = 0 
    ) 
関連する問題