簡體   English   中英

使用Flight php創建Json

[英]Create Json using Flight php

我有一個問題,我必須使用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();
  });

如果您想要未轉義的斜杠,我相信您可以將其作為名為$option的第5個函數參數傳遞,請參閱source

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM