我尝试手动构建一个json字符串发送给客户机。
{'result':'hhh'}
当我使用
echo json_encode(array('result'=>'hhh'));
它完美地到达了。
但当我这么做的时候
echo "{'result':'hhh'}";
不是的
我发现这两个请求之间的唯一区别是第一个请求有:
Content-Length: 9 header
第二个(不起作用)
Content-Length: 16 header
两个字符串都应该是内容长度:16!!!我想这和zf和mootools的结合有关。
最佳答案
根据规范,json需要在键名和字符串值周围加双引号。
echo json_encode(array('result'=>'hhh'));
将输出
{"result":"hhh"}
此输出的长度为16字节,如下所示:
echo strlen(json_encode(array('result'=>'hhh')));
输出“16”。
任何遵循规范的json解码器在与您的手动回显json一起显示时都将失败或引发异常。