zoukankan      html  css  js  c++  java
  • 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、外层是双引号时,内层的双引号需要转义。


  • 相关阅读:
    Java之三元运算符
    Linux之用户和用户组管理指令
    Java之键盘输入语句Scanner
    进程同步和进程互斥
    Java之运算符优先级
    Java之单分支和双分支程序流程基本使用
    Python chr 函数 Python零基础入门教程
    Python globals 函数 Python零基础入门教程
    Python filter 函数 Python零基础入门教程
    Python locals 函数 Python零基础入门教程
  • 原文地址:https://www.cnblogs.com/gyfluck/p/10418001.html
Copyright © 2011-2022 走看看