首页 >后端开发 >php教程 > 正文

php中的json_encode()和json_decode()函数详解

原创2018-09-30 14:33:43016969
在介绍这两个函数之前,我还是想说一下json。不知道大家对json了解多少,感觉自己接触php一段时间后,就已经对json有些印象,但仅仅是印象而已,我只知道它是一种数据类型,比较轻量。但是对于它的结构,我真的是模糊不清,直到现在使用它,我才了解到,所以:实践是检验你是否获得真知的一种非常有效的方法。

一:首先是json_encode(),意思就是将数据转为json格式,那什么类型数据可以转为json格式呢

1.对象。

定义一个class,new一个对象,可以将对象转为json格式

<?php
   class Emp {
       public $name = "";
       public $hobbies  = "";
       public $birthdate = "";
   }
   $e = new Emp();
   $e->name = "sachin";
   $e->hobbies  = "sports";
   $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
   $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));

   echo json_encode($e);
?>

结果

{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}

2.数组。

定义一个键值对数组

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
?>

结果

{"a":1,"b":2,"c":3,"d":4,"e":5}

我们可以知道都是转为了json格式数据,其实重点不在于结果相同,因为都是转为json么。。我们需要知道的是可以转为json格式的数据类型是对象和键值对数组

二:其次是json_decode()对 JSON 格式的字符串进行解码,并转换为 PHP 变量。

先上代码

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>

打印结果

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

这里我们很显然的看出第一个打印结果是一个对象,第二个是一个键值对数组。

这样我们可以很好的解释json_decode()的第二个参数:

当为true时:返回数组;当为false(默认为false)时:返回对象。

相关推荐:

php中关于json_encode()函数的详解

PHP json_encode() 函数详解及中文乱码问题

PHP json_encode() 函数介绍

以上就是php中的json_encode()和json_decode()函数详解的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:json decode encode
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    推荐视频教程
  • JSON中文手册JSON中文手册
  • FastJson教程手册FastJson教程手册
  • JSON中文手册JSON中文手册
  • AJAX跨域解决方案:JSONP视频教程AJAX跨域解决方案:JSONP视频教程
  • 视频教程分类