2012-04-09 43 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