• PHP的json_encode()函数的引号


    PHP的json_encode()函数的引号


    (1)数组的索引和值都使用双引号

    $a = ["id"=>1,"age"=>12,"name"=>"张三"];
    var_dump(json_encode($a));
    //结果:string(39) "{"id":1,"age":12,"name":"u5f20u4e09"}";

    (2)数组的索引和值都使用单引号
    $b = ['id'=>1,'age'=>12,'name'=>'张三'];
    var_dump(json_encode($b));
    //结果:string(39) "{"id":1,"age":12,"name":"u5f20u4e09"}"

    说明:
    比较结果可以看出,转成json后结果是一样的,
    说明函数json_encode()转化后都为双引号。

    注意,json字符串的外层是双引号,内层也是双引号,看起来是这样,转义的斜杠在打印到屏幕上时是不显示出来的。

    下面的示例可以说明:

    先定义json字符串,然后看是否可以转化成数组:

    (1)直接使用上面打印出来的json字符串

    $a = "{"id":1,"age":12,"name":"u5f20u4e09"}";
    var_dump(json_decode($a,true));

    结论:直接报错:Parse error: syntax error, unexpected 'id' (T_STRING) in ... 

    都是用双引号,报错。

    (2)使用单引号把json数据引起来

    $a = '{"id":1,"age":12,"name":"u5f20u4e09"}';//正确的json数据
    var_dump(json_decode($a,true));

    结论:正常运行,正常解析。

    (3)外层还是用双引号,内层使用斜杠转义:

    $a = "{"id":1,"age":12,"name":"u5f20u4e09"}";
    var_dump(json_decode($a,true));

    结论:正常运行,正常解析。

    (4)外层使用双引号,内层使用单引号:

    $a = "{'id':1,'age':12,'name':'u5f20u4e09'}";
    var_dump(json_decode($a,true));

    结果是NULL,也不是正常的json数据。

    结论:

    1、内层的索引和值必须是双引号;

    2、外层是单引号时,内层的双引号不需要转义;

    3、外层是双引号时,内层的双引号需要转义。


  • 相关阅读:
    转: CvMat,Mat和IplImage之间的转化和拷贝
    Scrapy 轻松定制网络爬虫
    榆林暑期见习
    文学
    浅析Redis实现lock互斥访问资源
    使用Maven构建Java项目
    正则表达式
    CSS 命名规范及标题供参考与学习
    从零开始在linux下搭建wordpress博客
    python2和python3的区别
  • 原文地址:https://www.cnblogs.com/gyfluck/p/10418001.html
Copyright © 2020-2023  润新知