2012-04-09 64 views
0

我使用ajax函數來獲取數據爲我的jquery自動完成,但它似乎不解析JSON響應,我找不到原因。CakePHP的JSON響應與json_encode不工作

我看了一個正在工作的console.log,這是另一個json響應,另一個不工作,並且在Chrome控制檯中,我可以在下面看到。第一個不工作,第二個工作。

["17","17","16","20","19","18","23","18","20","18","23","23"] 
["25", "24", "25", "24", "24", "23", "21", "23", "22", "21", "22", "22"] 

我可以看到第二個在數字上有紅色,我找不到原因。

有人可以找出爲什麼它不解析這個JSON嗎?

回答

0

第二個在每個逗號後面都有一個空格(或其他顯示的字符)。如果這是你如何調用json_encode()輸出,你可以運行的額外措施,以確保這些空間是不存在將其返回到您的AJAX功能之前:

$encoded_text = str_replace(" ","",$encoded_text); 

不要使用,如果你可能有數據,有正常的空間。我不確定這是不是導致它無法正常工作的原因,但這是您向我們展示的字符串中唯一的區別。您也可以使用JSONLint來免費驗證您的JSON。

+0

謝謝。但是,有第二個空間的那個正在用紅色工作。我在想。$ .trim(data)函數是處理JSON的錯誤方法,因爲我在AJAX響應的前面有兩個回車符,我只是用jquery trim函數來刪除它們並將它放在變量上,但這可能是錯誤的方法。這是因爲我似乎無法找到在Cakephp中發生回車的地方。 – 2012-04-09 13:06:35