一、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"

最新文章

  1. jsp 内置对象
  2. [BZOJ3696][FJSC2014]化合物(异或规则下的母函数)
  3. CentOS 6.x 一键安装PPTP VPN脚本
  4. 源码安装Apache,报错:Cannot use an external APR with the bundled APR-util和httpd: Could not reliably determine the server&#39;s fully qualified domain name, using
  5. part 设置
  6. CSS3 3D变换
  7. mysql Partition(分区)初探
  8. php 函数之 )_each()list()implode()explode()in_array()
  9. css中关于transform、transition、animate的区别
  10. AndroidUI的组成部分RoomButton
  11. There is no getter for property named &#39;XXX&#39; in &#39;class java.lang.String&#39;解决方法
  12. oracle 查询所有约束
  13. iOS.mach_msg_trap()
  14. STM32L476应用开发之七:流量的PID控制
  15. 20155208徐子涵 Exp4 恶意代码分析
  16. Hibernate 再接触 性能优化
  17. 在做销售录入界面时,如何使用dbgrid?(50分)
  18. 决策树分类算法及python代码实现案例
  19. elementUI和iview兼容么
  20. java jsp失效问题--待解决

热门文章

  1. MT【103】二阶递推找规律
  2. bzoj1047&amp;bzoj1012
  3. COCI 2018/2019 CONTEST #2 Solution
  4. c# 16进制byte转成int
  5. NIO[读]、[写]在同一线程(单线程)中执行,让CPU使用率最大化,提高处理效率
  6. 口琴练习部分 - 多孔单音奏法 &amp; 简单伴奏
  7. 【CSS】clear清除浮动
  8. django-simple-captcha 验证码插件
  9. Saltstack-API(十二)
  10. bzoj千题计划206:bzoj1076: [SCOI2008]奖励关