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

    在引见这两个函数之前,我照样想说一下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)时:返回对象。

    原文作者:yang
    原文地址: https://segmentfault.com/a/1190000018592541
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞