编码Json请求的问题

时间:2009-03-26 03:07:34

标签: php json zend-framework http-headers mootools

我尝试手动构建一个Json字符串以发送给客户端。

{'result':'hhh'} 

当我使用

echo json_encode(array('result'=>'hhh'));

它到达完美。 但是当我做的时候

echo "{'result':'hhh'}";

不是

我发现两个请求之间的唯一区别是第一个请求:

Content-Length: 9    header

和第二个(不起作用)

Content-Length: 16   header

两个字符串都应该是内容长度:16 !!!我想这与ZF和Mootools的组合有关。

2 个答案:

答案 0 :(得分:2)

根据规范,JSON需要围绕键名和字符串值使用双引号。

echo json_encode(array('result'=>'hhh'));

将输出

{"result":"hhh"}

此输出的长度为16个字节,如下所示:

echo strlen(json_encode(array('result'=>'hhh')));

输出“16”。

遵循规范的任何JSON解码器都会在出现手动回显的JSON时失败或抛出异常。

答案 1 :(得分:1)

它没有UTF-8的问题,因为UTF-8是它的标准编码。听起来好像你在一个不同的编码方案中回应一些东西,它打破了,而json_encode()正在为你转码。