代码之家  ›  专栏  ›  技术社区  ›  Itay Moav -Malimovka

编码JSON请求的问题

  •  3
  • Itay Moav -Malimovka  · 技术社区  · 16 年前

    我尝试手动构建一个JSON字符串来发送给客户机。

    {'result':'hhh'} 
    

    当我使用

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

    它完美到达。 但当我这样做

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

    它不是

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

    Content-Length: 9    header
    

    第二个(不起作用)

    Content-Length: 16   header
    

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

    2 回复  |  直到 16 年前
        1
  •  2
  •   Elmo    16 年前

    根据规范,JSON需要在键名和字符串值周围加双引号。

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

    意志输出

    {"result":"hhh"}
    

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

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

    输出“16”。

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

        2
  •  1
  •   chaos    16 年前

    它没有 问题 对于UTF-8,UTF-8是它的标准编码。听起来好像是在用不同的编码方案回送什么东西,而json_encode()正在为您转码。

    推荐文章