2017-09-06 186 views
-1

我從數據庫中獲取信息並創建一個json供用戶下載。但有使用JSON問題下載 我的代碼在CakePHP中刪除json_encode()中的斜槓後的雙引號

 $response = json_encode($result,JSON_UNESCAPED_SLASHES); 
     header('Content-Type: application/json'); 
     $this->viewBuilder()->className('Json'); 
     $this->response->download('export-' . date('YmdHis') . '.' . "json"); 
     $this->set('_jsonOptions', JSON_PRETTY_PRINT); 
     $this->set(compact('response')); 
     $this->set('_serialize', "response"); 

預計:

{ 「版本」: 「1.0」, 「名」: 「測試」, 「值」: 「ABC123」 }

結果

{\ 「版本\」:\ 「1.0 \」,\ 「名稱\」:\ 「測試\」,\ 「值\」:\ 「ABC123 \」 }

+0

已經參照本:https://stackoverflow.com/questions/8837659/remove-double-quotes-from-a-json-encoded-string-on- the-keys?rq = 1但可能不符合要求 –

+0

您確定'$ result'是一個數組嗎? var_dump($ result);'給了你什麼? – jeroen

+1

我不是一個蛋糕用戶,但粗略的谷歌(並只是看你的代碼)建議Cake內部使用json_encode,所以只需傳遞未編碼的數據:'$ this-> set(['response'=> $ result]); ' – Steve

回答

0

與JSON_FORCE_OBJECT參數試試這個

<?php 
    $fruits = array('apple', 'orange', 'banana', 'strawberry'); // fruits table 
    echo json_encode($fruits, JSON_FORCE_OBJECT); 
    // {"0":"apple","1":"orange","2":"banana","3":"strawberry"} 
?>