zoukankan      html  css  js  c++  java
  • PHP中json_encode与json_decode

    一、json_encode() 对变量进行JSON编码,

    • 语法: json_encode ( $value [, $options = 0 ] )
    • 注意:1、$value为要编码的值,且该函数只对UTF8编码的数据有效;

          2、options:由以下常量组成的二进制掩码:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP,                                       JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT;

          3、第二个参数一般不需要;

          4、json数据其实就是一个string,可以用var_dump()打印出来看数据类型;

          5、执行成功返回JSON数据,否则返回FALSE。

    • 示例:
    $book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
    $json = json_encode($book);
    echo $json;

      浏览器打印出的结果如下:

    {"a":"xiyouji","b":"sanguo","c":"shuihu","d":"hongloumeng"}

    二、json_decode() 对JSON数据进行解码,转换为PHP变量

    • 语法:json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
    • 注意:1、$json 为待解码的数据,必须为utf8编码的数据;

          2、$assoc 值为TRUE时返回数组,FALSE时返回对象;

          3、$depth 为递归深度;

          4、$option 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING;

          5、一般只用前面两个参数,如果要数据类型的数据要加一个参数true。

    • 示例:
      复制代码
      复制代码
      $book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
              $json = json_encode($book);
              
              $array = json_decode($json,TRUE);
              $obj = json_decode($json);
              var_dump($array);
              var_dump($obj);
      复制代码
      复制代码

      浏览器打印出的结果如下:

      array(4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }
      object(stdClass)#2 (4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" } 

      两个结果看起来没多大区别,但调用里面的元素时,array和obj的方式是不同的。  

    复制代码
    复制代码
    $book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
            $json = json_encode($book);
            
            $array = json_decode($json,TRUE);
            $obj = json_decode($json);
            var_dump($array['b']);//调用数组元素
            echo '<br/>';
            var_dump($obj->c);//调用对象元素
    复制代码
    复制代码

      

     打印结果如下:

    string(6) "sanguo" string(6) "shuihu"

  • 相关阅读:
    leetcode108 Convert Sorted Array to Binary Search Tree
    leetcode98 Validate Binary Search Tree
    leetcode103 Binary Tree Zigzag Level Order Traversal
    leetcode116 Populating Next Right Pointers in Each Node
    Python全栈之路Day15
    Python全栈之路Day11
    集群监控
    Python全栈之路Day10
    自动部署反向代理、web、nfs
    5.Scss的插值
  • 原文地址:https://www.cnblogs.com/cxy2020/p/14938714.html
Copyright © 2011-2022 走看看