2013-02-25 47 views
-1

我有這樣的代碼雙引號不工作的JSON

$m_strOutput= "{\"success\":true,\"results\":" . $m_objQuery->num_rows() . ",\"rows\":"; 
    $m_strOutput = $m_strOutput . json_encode($m_objQuery->result()); 
    $m_strOutput = $m_strOutput . "}"; 

但一些數據中已經有雙引號。所以它打破了我的觀點,我試圖解析它。我如何解決這個雙引號問題。

+1

不要手動湊齊JSON。創建一個數組,使用'json_encode'將所有數據編碼在一起。 – deceze 2013-02-25 09:25:03

+0

也許你可以嘗試爲這些數據addslashes? – 2013-02-25 09:25:41

+0

也許你需要替換單引號? – Winston 2013-02-25 09:26:03

回答

3

兩件事情:

  1. 這不是雙引號的問題。你會有語法錯誤,把一個值放入沒有密鑰的JSON對象中。

  2. 你應該讓json_encode爲你做所有的工作。

代碼可能適合你的情況:

<?php 

$m_strArr = array(
    'success' => true, 
    'results' => $m_objQuery->num_rows(), 
    'rows' => $m_objQuery->result(), 
); 

$m_strOutput = json_encode($m_strArr); 
?> 
+0

我得到相同的舊錯誤,如「未捕獲的異常:無效的JSON:」 – Hacker 2013-02-25 09:41:26

+1

這很奇怪。你能告訴我們一個JSON輸出的例子(導致錯誤)嗎? – 2013-02-25 09:49:10