很早以前就听说过json了,但是一直没有系统的学习过,以前在php手册里面看到了json_encode() 和json_decode()函数,当时不禁在想在php里面json就是这样使用的吗?但是一想自己迅雷面试的时候面试官问道的又觉得json那么简单—— 就是所谓的将变量进行json编码(一种数据交换格式)。所以就又问了自己几个问题比如说:在实际项目里面json什么时候使用呢? 他和面向对象里面的那个对象串行化有什么联系和区别吗?这就是一个很实际的问题?但是想了半天不能给自己一个答案。
对象串行化:1.对象需要在网络中传输时,将对象串行化成二进制后在网络中传输
2.对象需要持久保存时,将对象串行化后写入文件或是数据库中
举个例子:
class_Person.php
<?
class Person{
private $name;
private $age;
private $sex;
function __construct($name,$age,$sex){
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
}
function say(){
echo "我的名字是:".$this->name.",年龄是:".$this->age.",性别:".$this->sex.'<br>';
}
}
?>
serilize.php
<?
require("class_Persn.php");
$person = new Perosn("张三",22,"male");
$person_string = serialize($person);
file_put_contents("file.txt",$person_string);
?>
JSON结构有两种结构:
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组2种结构,通过这两种结构可以表示各种复杂的结构 1、对象:对象在js中表示为“{}”扩起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。 2、数组:数组在js中是中括号“[]”扩起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。 经过对象、数组2种结构就可以组合成复杂的数据结构了。