1
我们正在开发与Zend框架的API。下面是一个例子响应
$this->getResponse()
->setHttpResponseCode(200)
->appendBody($this->_helper->json($client->toArray()));
我想象中的$这个 - > _ helper-> JSON将返回一个JSON字符串,但它返回一个数组(在开发环境)。
我现在已经升级服务器和非常相同的代码返回JSON字符串玩。
的开发环境是目前不同的PHP版本(dev为5.3.1,升级为5.3.3),这是什么原因?这些不同版本是否对JSON进行不同的编码?任何想法为什么发生这种情况?
都能跟得上它应该返回JSON。是否有可能将其他方法放回到数组中。 $ this - > _ helper-> json($ array)现在返回Json,它不会等待完成操作。 Php的版本应该不会影响这个问题。虽然升级到5.3.8或5.3.9是防止请求对象利用的一个好主意。 – RockyFord 2012-01-30 14:42:18
感谢您的快速响应。这很奇怪。没有其他函数触及输出并将其转换为数组。作为对我以前的评论的修改,我应该说它正在返回一个对象数组,就好像JSON已经被自动解码一样。它不会在登台服务器上执行此操作。难道是通过编码问题按http://stackoverflow.com/questions/689185/json-decode-returns-null-php字符引起的? – JoshH2 2012-01-30 14:56:12
快速更新,@RockFord是正确的(我的错)的存在是被自动json_decoding字符串的函数。但是,json_decode在登台服务器上失败,看起来像是它向我返回了一个JSOn字符串,但事实上它无法对其进行解码。我使用的stackoverflow.com/questions/689185/json-decode-returns-null-php的解决方案,但有另一种是确保字符编码,以避免这种情况? – JoshH2 2012-01-30 15:40:45